面试题
木樨天堂
天空中没有翅膀的痕迹、但我已飞过
展开
-
内部排序(3)——选择类排序
选择类排序一、简单选择排序简单选择排序的思路很简单:进行len-1趟选择,剩下一个元素就不用选择了,每一趟将选取的最小的元素放至该趟的起始位置i,那么从i开始到len为止的元素向后移动一位。然后再将这个最小值放在该处。代码如下:void SelectSort(int a[], int len) //简单选择排序 { int i = 0,j = 0,pos = 0; for(i原创 2017-07-31 18:52:28 · 234 阅读 · 0 评论 -
递归、迭代、到动态规划
递归 VS迭代首先,一起来看下这几道经典面试题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。先看第1题: 先走f(n-1),剩一级台阶我们一步跨上去。 先走f(n-2),剩两级台阶我们一次跨两部上去。(一次跨一步的话就属于上面第一种类型了原创 2017-07-31 17:50:07 · 469 阅读 · 0 评论 -
旋转数组
旋转数组这道题一定要思路清晰,有一个隐藏的bug,如果考虑步骤的话会很痛苦的。 首先:最直观的方法遍历数组找到最小的,时间 复杂度为O(n),这显然不是面试官希望的答案。然后:我们比较容易想到的方法就是,从头遍历,遇到下一个比自己小的就把下一个值输出。 如果遍历完还没找到,那么久返回第一个数。最后:这道题其实是考察二分查找,但是如果是递增序列的话实现起来不难,但是题中讲的是“非递减序列”,那原创 2017-07-29 16:48:57 · 548 阅读 · 0 评论 -
求第K个丑数
首先,我们来看下这道面试题的描述:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。法一:遍历法要求第K个丑数,那么根据它的性质(只含有2,3,5的因子),我们可以想到一种很直观的方法: 从1开始每次加一往后找,知道找到K个丑数,每一次判断该数是否为丑数的方法是——看该数原创 2017-08-24 12:51:16 · 435 阅读 · 0 评论 -
面试基础题总结
基础知识:计算机网络: 1.TIME_WAIT 的作用; 2.Socket 编程,手写 Client 和多线程 Server 3.IP 头组成; 4.synchronized 原理;C++: 1.C++ 重载和重写的区别;综上所述,总结如下: 1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可原创 2017-08-31 23:34:57 · 247 阅读 · 0 评论