STL和数据结构与算法

STL和数据结构与算法

1.STL了解吗?常用哪些容器

2.List和vector有什么区别

(回答这类问题如果有把握的话可以把使用场景一起说了)

3.讲一下vector的扩容机制

4.vector有什么问题吗?vector合理吗?

(这个问的不多,但很有意思,可以去了解一下)

5.迭代器失效是什么原因

6.容器适配器知道吗,讲一下stack和queue

7.能和我说说优先队列的底层吗

8.map和unordered_map的区别是什么

(红黑树和哈希表,顺便一提unordered_map用的开链法解决哈希冲突,什么是哈希冲突以及其他相关办法也得了解一下)

9.红黑树是什么,简单介绍一下,和平衡树的区别是什么

10.string为什么不提供分割方法

(这个很难,就遇到一次,和面试官聊天的时候提到的,我也有点懵为什么这么问,知乎上有帖子专门分析,感兴趣可以看看)

11.平常使用哪些排序算法,std::sort()用的哪种

12.常见操作的时间复杂度(比如map和unordered_map的插入查找,vector和list的插入查找等等)

13.常见排序算法的时间复杂度,以及是否稳定

--------------------------------------下面是遇到算法题------------------------------------------------

括号匹配

(我用的栈)

找到链表倒数第k个数

(暴力,双指针)

单链表逆转

(双指针,快慢指针)

树的中序遍历

(递归非递归)

N个数中只有某个数出现的次数是奇数,如何找到哪个数字

(异或)

N*M的地图,从左上角开始只能向下和向右一次走一步,走到右下角有几种路线

(动态规划)

N(N特别特别大)个数据中找最大的树数

(这个题特别经典,不管是CSDN或者Leetcode中都有相应的记录,一定要搞懂最少两种方法)

剩下想不起来了。。想起来再补充。。

---------------------------------------益智题目-----------------------------------------------------------

2的17428次方最后一位

一堆外观相同的球找唯一一个质量不同的球,不知道是轻还是重

剩下想不起来了。。想起来再补充。。

---------------------------------------补充----------------------------------------------------------------

做算法题一定要想想有没有别的方法,不管是从时间复杂度还是空间复杂度来优化这个算法。

面试的时候不是做出来那么简单,还会顺便问问有没有别的解法。

你可能感兴趣的:(面试问题,算法,c++,面试)