动态规划 本文主要是写题时遇到的动态规划问题的整理 动态规划1.背包问题背包问题是一种组合优化的 NP 完全问题: 有 N 个物品和容量为 W 的背包,每个物品都有 自己的体积w和价值v,求拿哪些物品可以使得背包所装下物品的总价值最大。 如果限定每种物品只能选择0个或1个,则问题称为0-1背包问题;如果不限定每种物品的数量,则问题称为无界背包问题或完全背包问题。 0-1背包 以0-1背包问 2021-04-24 算法
C++STL相关 C++STL相关本篇主要总结学习STL时遇到的的一些知识点,可能会比较零散,会慢慢整理。 Setset作为一个容器用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序,set的元素不像map那样可以同时拥有实值(value)和键值(key),set元素的键值就是实值。 set不允许两个元素有相同的键值。C++的标准库中的集 2021-04-17 C++
2021春招面试 4-1 腾讯魔方工作室一面(约50mins)人生中第一次面试,在31号晚上写完网易笔试收到的消息,然后就开始了紧张的复习,当天早上和下午的课完全没心思听,一直在刷c++基础知识和做算法题。 晚上八点面试,然而我和面试官都提早上线就比较早开始了,自我介绍太紧张了一开口说错自己是大二的了,面试官人很好,按着我的回答引导下去提问,到不会的地方就转移知识点了。 c++一些地方则是完全没复习到,难以想象居然 2021-04-02 面经
排序算法 排序算法算法复杂度 1.快速排序快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下: 从数列中挑出一个元素,称为 “基准”(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面, 2021-03-31 算法
C语言实现多态 C语言实现多态原文 1.C++和C的区别C语言是面向过程的语言,而C++是面向对象的过程。 什么是面向对象和面向过程?面向过程就是分析解决问题的步骤,然后用函数把这些步骤一步一步的进行实现,在使用的时候进行一一调用就行了,注重的是对于过程的分析。面向对象则是把构成问题的事进行分成各个对象,建立对象的目的也不仅仅是完成这一个个步骤,而是描述各个问题在解决的过程中所发生的行为。 面向对象和面向过程的区 2021-03-30 C
C++知识复习(一) 1.c++的构造函数为什么不能是虚函数,而基类的析构函数必须是虚函数?来源构造函数为什么不能是虚函数呢? 首先需要了解 vptr指针和虚函数表的概念,以及这两者的关联。 vptr指针指向虚函数表,执行虚函数的时候,会调用vptr指针指向的虚函数的地址。 当定义一个对象的时候,首先会分配对象内存空间,然后调用构造函数来初始化对象。vptr变量是在构造函数中进行初始化的。又因 2021-03-24 C++