小編去年7月份應屆入職挪拟,已經(jīng)成為社會人13個月了。這期間發(fā)生了很多事情紧武,近期相關的工作總結(jié)也會逐漸和大家見面剃氧。這次先和大家分享一次面試實習生的經(jīng)歷。
因為是不是正式秋招的面試阻星,實習生面試大部分是相對簡單些:不會故意問一些比較奇奇怪怪的算法朋鞍,主要是編程語言的基礎考察,以及通過簡單常見的算法題考察候選人的編程思維妥箕。
基礎考察部分普普通通滥酥,沒有什么印象很深刻的事情。對于編程語言基礎畦幢,只能和大家說:一定要比較熟悉一門語言坎吻,你會多門語言 && 都是了解的水平,對你的面試絕對是負面影響宇葱。
下面聊聊面試中印象深刻的部分:算法題部分瘦真。如上面所說,一般不會在算法上面為難實習生贝搁,所以算法面試環(huán)節(jié)的題目也比較簡單:
二分查找的實現(xiàn)
這個簡單吧吗氏,絕對良心 && 經(jīng)典題目,因為是C++的面試雷逆,所以本文給出的代碼都是C++的弦讽,java同學也可以看懂。
因為二分查找是經(jīng)典的算法膀哲,這個題目本身沒有什么問題往产,候選人也給出了很標準的二分查找實現(xiàn),類似下面的實現(xiàn):
int binarySearch1(int *a, int len , int target)
{
int low = 0, high = len;
while(low < high)
{
int middle = (low + high) / 2;
if(target == a[middle])
return middle;
else if(target > a[middle])
low = middle +1;
else if(target < a[middle])
high = middle;
}
return -1;
};
如果到這里某宪,算法面試就結(jié)束了的話仿村,感覺有點太水了。所以一個想法是在這個題目上延伸一下兴喂,但是又需要控制難度(畢竟只是一面)蔼囊。然后拍了下腦袋焚志,在上面二分查找的實現(xiàn)上又提了一個要求:
在第一個答案的基礎上(不能改變函數(shù)的參數(shù)和返回值),實現(xiàn)下面的功能:
- 如果目標值在數(shù)組中存在畏鼓,則返回目標值在數(shù)組中的下標酱酬;
- 如果目標值在數(shù)組中不存在,則調(diào)用函數(shù)方可以根據(jù)返回值得到目標值應該插入到數(shù)組的哪一個index云矫。
實話說膳沽,上面這個題目其實也不難,就是在標準的二分查找的基礎上增加了第二點要求让禀,修改預期不是很多挑社,比較二分查找本身難度就十分有限。
但是比較遺憾的是巡揍,半小時過去了痛阻,還是沒有給出完全正確的答案。
最后的結(jié)果......大家也可想而知腮敌。大家平心而論录平,大家覺得這個道題難嗎,歡迎大家評論留言發(fā)表自己的看法缀皱。