乐其

笔试。全大题。

第一题
已知二维数组
1 2 3 4
3 4 5 6
5 6 7 8
6 7 8 9
横向、纵向均为升序。
编程查找一个给定的数字。

 

第二题。
查找旋转数组的最小值
第三题。
给定字符串,输出字符串中元素的所有可能组合。

前两个题我都是顺序查找,第三题根本不会。后来才发现,第一题可以从右上角开始查找,第二题可以用二分查找。

问答题。
1. TCP协议的三次握手过程。
2. 创建索引的优点和缺点。

 

面试。

面试官一看就是搞技术的。一副心不在焉的样子。首先看了看简历,问,我们这边主要是Java和PHP,你是做C++的···,我立即回答,没关系,C++是面向对象的而且比Java更复杂,如果会C++,Java也肯定学起来很快。然后没说啥。看了看简历,觉得没啥问的。开始问笔试时候的卷子,意思是有没有想过你如何用更优化的方法实现这些算法,我立即回答,又想了,于是指了第二个题。跟他说思路,然后写代码。写了大概五分钟?觉得还差不多,然后二话没说,再拿出一个题,让直接写代码。题目是这样的,给定一组数,其中有两个数只出现一次,而其他数都出现两次,要求用O(n)的时间复杂度找出这两个数。我想了想,然后他开始提示,Map会不会?哈希表会不会?你建立一个键值对,一边放数,一边放数出现的次数,用空间换取时间。我说就是再建一个数组,里面放数出现的次数,他说是的。开始想,谁知道他心血来潮,突然说,那这样,有什么问题需要问我们这边的,我顿时觉得没戏了,于是乎就问了不关痛痒的问题,什么具体做什么的,什么工作地点啦等等。接着,出门右转。

回头做一下面试的编程题。

题目:

有一组数,其中两个数只出现一次,其它数都出现两次,找出这两个数并输出。
输入:178127
输出:8,2
要求时间复杂度为O(n)

 

posted @ 2015-10-23 18:32  wuyefeima  阅读(105)  评论(0)    收藏  举报