首页 > 编程知识 正文

leetcode有选择题吗,LeetCode题库

时间:2023-05-03 18:43:18 阅读:223943 作者:2525

知识点1: 用户标识符要求由字母、数字、下划线组成,并且不能用数字作为标识符的开头

知识点2:树从根结点开始往下数,叶子结点所在的最大层数称为 树的深度。从0开始数,深度=高度-1,从1开始数,深度等于高度。附:rrdsb数深度一般从0开始数,一般用于计算带权路径长度。

知识点3:我们都知道有序数组存储数据,对数据的索引效率都很高,但是插入和删除就会有性能瓶颈(回忆ArrayList),链表存储数据,要一次次比较元素(由p->next一个接一个去找)来检索出数据,所以索引效率低但是插入和删除效率高(回忆LinkedList),两者取长补短就产生了哈希散列这种存储方式,也就是HashMap的存储逻辑.而负载因子表示一个散列表的空间的使用程度,有这样一个公式:initiallCapacity*loadFactor=HashMap的容量。所以负载因子越大则散列表的装填程度越高,也就是能容纳更多的元素,元素多了,链表大了,所以此时索引效率就会降低。反之,负载因子越小则链表中的数据量就越稀疏,此时会对空间造成浪费,但是此时索引效率高。

知识点4:必须使用初始化列表的时候
除了性能问题之外,有些时候合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表 
1.常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面 
2.引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面 
3. 没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化

知识点5:就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它的唯一的一个参数是本类型的一个引用变量,该参数是const类型,不可变的。例如:类X的拷贝构造函数的形式为X(const X& x)。当类的对象需要拷贝时,拷贝构造函数将会被调用。

以下情况都会调用拷贝构造函数:
一个对象以值传递的方式传入函数体 
一个对象以值传递的方式从函数返回 
一个对象需要通过另外一个对象进行初始化。

知识点5:

深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。

知识点6:重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。如下:

Box operator+(const Box&);

知识点7:递归算法估计时间复杂度

知识点8 :对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

知识点9:

活动网络可以用来描述生产计划、施工过程、生产流程、程序流程等工程中各子工程的安排问题。活动网络可分为两种:AOV网络和AOE网络

AOV网络(Activity On Vertices):在有向图中,用顶点表示活动,用有向边u->v来表示活动u必须先于活动v进行

AOE网络(Activity on edge network):若在带权的有向图中,以顶点表示阶段,以有向边u->v表示活动活动u必须先于活动v进行,边上的权值表示活动的开销(如该活动持续的时间)

在python对numpy的操作中,通常使用resize改变数组的尺寸大小,使用reshape用来增加数组的维度。

知识点10:

对于X[:,0];

是取二维数组中第一维的所有数据

对于X[:,1]

是取二维数组中第二维的所有数据

对于X[:,m:n]

是取二维数组中第m维到第n-1维的所有数据

对于X[:,:,0]

是取三维矩阵中第一维的所有数据

对于X[:,:,1]

是取三维矩阵中第二维的所有数据

对于X[:,:,m:n]

是取三维矩阵中第m维到第n-1维的所有数据

知识点11:

用h5py模块读取mat文件

知识点12:

简单点说: 如果一个3维矩阵是  2x3x4 的 如果为axis = 0 ,就变成3x4 ,如果 axis = 1 就变成2x4的,如果 axis = 2,就变成2x3的

python题库里的一题:
__new__和__init__的区别.
1、__init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。
2、__new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。
即,__new__在__init__之前被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。(若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。静态方法只能调用静态变量)

 

c++题库知识点汇总:

1、C++中对析构函数也有一些规定:没有参数;不能重载;析造函数的名字是在类名前加“~”;析构函数不能指定返回类型

2、vector<vector<int>> //表示该向量的元素是vector对象

3、cin>> 操作符根据后面变量的类型读取数据。

输入结束条件: 遇到Enter、Space、Tab键

对结束符的处理:丢弃缓冲区中使得输入结束的结束符(Enter、Space、Tab)

4、如何理解构造函数不能继承?

我是这样理解的,如果可以继承的话,子类新增的成员变量如何初始化?

5、vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素。此外, vector 也提供了许多的方法来对自身进行操作。

 

 

 

 

python题库汇总:

1、python map()函数

map()会根据提供的函数对指定序列做映射.

map() 函数语法:

map(function, iterable,...) 参数:function --函数,iterable 一个或多个序列

2、python支持连续比较

'a' < 'b' < 'c' 相当于 'a' < 'b' and 'b' < 'c',本质是ASCII码的大小比较》

3、浅拷贝与深拷贝

浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象变c不会变

4、tf.gather()的用法

C语言刷题知识点小结:

知识点1:静态数组作为参数传入某个函数的时候,就会退化成指针,也就是该数组的首地址,其数组的长度信息就丢掉了,这就是在这个语境下退化(和原来相比,丢失了一些信息,这样理解为退化)的概念。这也是为什么在将数组作为参数传递时,同时要将数组的长度也一并传入的原因。

知识点2:数组在哪些情况写不会退化为指针

知识点3:  你怎么理解函数返回局部变量的值?

一般说来,函数中是可以进行局部变量的返回的,不然岂不是全部要用全局变量,如果使用了全局变量,那还有必要进行返回吗?那函数就没有它存在的意义了!但是要注意了,这里所谓的局部变量的返回很有内涵,什么样的值才可以进行返回而不出错?其实,只要遵守一句话即可:函数不能返回指向栈内存的指针!为什么?因为返回的都是值拷贝!我们知道,局部变量的作用域是函数内部,函数一旦执行结束,栈上的局部变量会进行销毁内存得到释放。因此,此时函数返回的是该局部变量的值拷贝,这是没有问题的。但是如果返回的是局部变量的地址,那么返回的只是该局部变量指针的拷贝,而随着函数运行结束,该拷贝指针所指向的栈内存已经被释放,那么指向一个未知区域就会导致调用的错误。

知识点4:返回的指针指向的是堆内存,又会怎么样?

 这样的使用是没有问题的,在函数内new空间,在函数外delete空间。但是这样并不是一种好的编程风格,尽量在同一个作用域内进行new和delete操作,否则还要调用者手动进行内存的释放,试问这样的接口是不是很烂。如果确实需要这样做,那就传指针进去吧!

知识点4:如何理解字符串双引号做的事情?(换句话说,char *p ; p = "abcde"这种操作如何理解)

答:

1、申请了一块内存空间

2、在字符串末尾加了''

3、返回地址

知识点5:KMP是一种字符串匹配算法。详细参考:https://blog.csdn.net/f1033774377/article/details/82556438

BF算法(普通匹配算法):时间复杂度O(m*n);空间复杂度O(1)

KMP算法:时间复杂度O(m+n);空间复杂度O(m)。并且KMP算法最大的特点就是指示主串的指针不需要回溯,因此指针不可能变小

知识点6:如何快速画出霍(哈)夫曼树(又叫最优二叉树,特点是带权路径长度(WPL is the abbreviation of weighted path length of Tree)最小),主要作用是用于数据压缩和编码长度的优化。

知识点7:由多个空格字符构成的串是空格串(而空串的是长度为0的串).

知识点8:直接选择排序、堆排序、希尔排序都是不稳定的排序算法(假如有2个数相同,排序前和排序后的这两个数的相对顺序发生了变化就称为不稳定

知识点9:连通图:

                最小生成树:对于一个带权连通无向图G中的不同生成树,各棵树的边上的权值之和可能不同,边上的权值之和最小的树称之为该图得最小生成树

                度:顶点连接的边数叫做这个顶点的度。

                边数等于顶点数-1的连通图就是一棵树。

                 没有圈的有向图叫做DAG(Directed Acyclic Graph)

知识点10:

知识点11:

除号的正负取舍和一般的算数一样,符号相同为正,相异为负。

例如:3/16=0     16/-3=-5 

求余符号的正负取舍和被除数(分子,也就是上半部分)符号相同。

例如:   -3%16=-3      16%-3=1 

知识点12:

字符串初始化数组时要记得将数组长度加1,因为字符串默认的末尾有一个‘’

知识点13:KMP算法中next数组的求解过程示例:

知识点14:rrdsb树习惯上将小的权值节点放在左边,大的放在右边。

知识点15: len(str)求字符长度的时候不包括

知识点16:子串可以是空串。

知识点17:输出字符串除了可以用printf()函数外,还可以使用puts()函数,函数的函数原型是

int puts(const char*s) 注意该函数只接受一个参数.

知识点18:串中任意个字符组成的子序列称为该串的子串。注意这句话是错的,一定要求是连续的,连续的,连续的

知识点19:老生常谈的问题  sizeof()  和  strlen()

sizeof()计算出来的包括字符串结尾的

strlen()算出来的不包过,即空字符。

. 举例:

输出为:

知识点20:在派生类中重写一个虚函数时,要求函数的返回值,函数名,参数的个数和类型都相同。 

重载要求函数名相同,参数不同(个数,类型),与函数返回类型无关。

知识点21:对于稀疏矩阵中的非零元素来说,行号,列号以及元素值,这3个可以唯一的确定该元素。(row,col,value)

知识点22:C语言中%只能用于整数的运算。

知识点23:确认测试(又称为有效性测试)以软件系统作为基本测试单元。模块和变量属于单元测试。 软件子系统属于集成测试单元。

知识点24: 一棵二叉树的前序和中序可以唯一的确定这棵二叉树。中序和后序可以唯一的确定这棵二叉树。

知识点25:罗马计数规则

知识点26:大端字节序,小端字节序

  

知识点27:setw()  w表示的是width

知识点28:scanf() 函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。

知识点29:计算机中如何表示浮点数?

数据库知识点汇总:

知识点1:什么是关系型数据库?

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。