![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
IT_kiki
这个作者很懒,什么都没留下…
展开
-
面试题:打印从1到最大的n位数
题目:输入数字n,按顺序打印从1 到最大的n位十进制数,比如输入3,则打印出1,2,3…999。乍一看这道题目,我们一般都会想到先求出最大的n位数,再循环从1 开始,逐个打印,如下代码:void Print1ToMaxOfnDigits_1(int n){ int number=1; int i=0; while(i++<n) { number *= 10; }//...原创 2019-05-15 17:47:32 · 186 阅读 · 1 评论 -
寻找数组中和为定值的两个数
题目描述:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。下面给出这个题的不同解法(注意阐述中数列有序无序的区别):(1)这个题目相当于,对每个a[i],查找sum-a[i]是否也在原始序列中...原创 2019-09-08 00:28:56 · 311 阅读 · 0 评论 -
面经——线程切换开销、弱引用智能指针weak_ptr
这段时间一直在忙着秋招,一边面试,一边整理总结,在面试的过程中也会发现很多问题,自己学习的时候并没有深究,导致“知其然而不知其所以然”,当面试被问到的时候,感到很可惜。其实想想也不必可惜,面试就是一个查漏补缺的过程,在这个过程中发现自己的一些遗漏之处,进一步查阅资料、深入学习,对自己也是很有帮助的。现在对自己遇到的以及和周围的小伙伴交流的他们遇到的其中一些问题,整理下面经,必要时留下有参考意义...原创 2019-09-24 23:46:51 · 328 阅读 · 0 评论 -
找毒水和找不同的球
前两天面试的时候,被问到了两个很有意思的题目:一、找毒水一共有100瓶药水,只有一瓶是毒药,已知如果小白鼠喝了这瓶有毒的药水(三天发作),即会在三天时死亡,请问如何在3天的时间里分辨出哪瓶是毒药,并且使用的小白鼠数量最少。答案:7只这个题题目其实很有意思,我当时一开始没搞懂题目意思,就想着3天后才会发作死亡,那怎么都不可能在三天之内找出这瓶毒药的啊。其实我是自己走到了一个死胡同,按...原创 2019-09-27 01:23:13 · 340 阅读 · 0 评论 -
剑指offer25:合并两个有序单链表
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。例如,输入下图中的链表1和链表2,则合并之后的升序链表如链表3所示,链表节点定义如下所示:typedef struct Node{ int mdata; struct Node* pnext;}Node,*PNode;合并的递归思路:链表1的头结点的值(注意:此处的头结点是指链表中的第一个...原创 2019-10-06 18:33:46 · 151 阅读 · 0 评论 -
单链表快排
说到快速排序,基于数组时,我们一般使用两个指针,一个指向首元素,一个指向尾元素,通过这两个指针的移动和交换达到快排的目的,但是当基于单链表时,此方法就行不通了,因为单链表是单向的,只有后继指针,无前驱指针,只能向后遍历,不能向前遍历。那么基于单链表时到底应该怎样进行快速排序呢?本文针对于该问题给出具体的解决方法。思路:定义两个指针pfirst和psecond,前者初始化为传入的头结点begin...原创 2019-10-07 17:10:28 · 177 阅读 · 0 评论 -
为什么MyisAM与InnodDB底层采用B+树做索引
1.为什么不是二叉树、红黑树什么的呢?首先,一般来说,索引本身也很大,不可能全部存在内存中,因此索引往往以索引文件的方式存在磁盘上。然后一般一个结点一个磁盘块,也就是读一个结点要进行一次IO操作。而二叉树这些树类的数据结构,查找时间主要和树的高度有关,所以虽然一颗AVL树或者是红黑树在查找上比起顺序遍历的O(N)有了比较大的改善,但B树和B+树因为每个结点存的元素更多,所以查询更快,对磁盘...原创 2019-10-09 17:40:54 · 396 阅读 · 0 评论