乐其
笔试。全大题。
第一题 已知二维数组 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会不会?哈希表会不会?你建立一个键值对,一边放数,一边放数出现的次数,用空间换取时间。我说就是再建一个数组,里面放数出现的次数,他说是的。开始想,谁知道他心血来潮,突然说,那这样,有什么问题需要问我们这边的,我顿时觉得没戏了,于是乎就问了不关痛痒的问题,什么具体做什么的,什么工作地点啦等等。接着,出门右转。
回头做一下面试的编程题。
题目:
有一组数,其中两个数只出现一次,其它数都出现两次,找出这两个数并输出。 输入:1,7,8,1,2,7 输出:8,2
要求时间复杂度为O(n)
浙公网安备 33010602011771号