IT旅途——程序员面试经验分享
面試是職場的永恒話題,如何在職場面試中脫穎而出,獲得心儀職位?這里搜集了關于面試經驗的熱文,其中匯集了阿里巴巴、百度、微軟幾個知名公司的面試題以及部分答題方法、技巧、面試的心得體會,供讀者參考。?
[1] 教你如何迅速秒殺掉:99%的海量數據處理面試題?
本文分成兩部分。第一部分、從set/map談到hashtable/hash_map/hash_set,簡要介紹下set/map/multiset/multimap,及hash_set/hash_map/hash_multiset/hash_multimap之區別(萬丈高樓平地起,基礎最重要),而本文第二部分,則針對上述那6種方法模式結合對應的海量數據處理面試題分別具體闡述。
[2] 百度最新面試題集錦?
最新的面試題集有時也代表公司近來的研發方向甚至科研趨勢,這里,博主收集了一些百度最新的面試題集,其中有較為有趣的試題,
比如:?
螞蟻爬桿問題:?
有一根27厘米長的細木桿,在第3厘米,7厘米,11厘米,17厘米,23厘米這五個位置上各有一只螞蟻,木桿很細,不能同時通過兩只螞蟻,開始時,螞蟻的頭朝向左還是右是任意的,他們只會朝前走或掉頭,但不會后退,當兩只螞蟻相遇后,螞蟻會同時掉頭朝反方向走,假設螞蟻們每秒鐘可以走1厘米的距離。求所有螞蟻都離開木桿的最小時間和最大時間。?
答案:?
? 兩只螞蟻相遇后,各自掉頭朝相反方向走。如果我們不考慮每個螞蟻的具體身份,這和 兩只螞蟻相遇后,打個招呼繼續向前走沒有什么區別。?
? 所有螞蟻都離開木桿的最小時間為?
? max(min(3,27-3),min(7,27-7), min(11,27-11), min(17,27-17),min(23,27-23))=11?
? 所有螞蟻都離開木桿的最大時間為?
? max(max(3,27-3),max(7,27-7), max(11,27-11), max(17,27-17),max(23,27-23))=24
三個警察和三個囚徒的過河問題:?
三個警察和三個囚徒共同旅行。一條河擋住了去路,河邊有一條船,但是每次只能載2人。存在如下的危險:無論在河的哪邊,當囚徒人數多于警察的人數時,將有警察被囚徒殺死。問題:請問如何確定渡河方案,才能保證6人安全無損的過河。?
答案:?
? 第一次:兩囚徒同過,回一囚徒?
? 第二次:兩囚徒同過,回一囚徒?
? 第三次:兩警察同過,回一囚徒一警察(此時對岸還剩下一囚徒一警察,是安全狀態)?
? 第四次:兩警察同過,回一囚徒(此時對岸有3個警察,是安全狀態)
[3] 阿里巴巴的面試
博主在文中指出,進入技術面試之前,先要做一套相應的試題,這里面涉及到平常不怎么注意的問題:
一是沒有定義訪問范圍的構造函數,前面未加public、protected或private限制等,默認protected,編譯會報錯;
?
[4]蘋果面試8大難題及答案
蘋果這樣的公司通常會在面試過程中向求職者拋出一些邏輯的問題來考研面試者,所以,如果你對進入蘋果感興趣,或者只是對邏輯問題感興趣,這些面試難題值得你仔細研究。
比如:?
"邏輯學家們圍成一圈坐著,他們的額頭上面畫有數字……”又來一個邏輯學家圍成一圈的問題,這次是這樣的,三個擁有完美邏輯推理能力的人圍成一圈坐在一個房間里,每個人的額頭上都畫著一個大于0的數字,三個人的數字各不相同,每個人都看得見其他兩個人的數字,看不見自己的。?
這三個數字的情況是,其中一個數字是其他兩個數字的和,已知的情況還有,其中一個邏輯學家的數字是20,一個是30。游戲組織者從這三個邏輯學家后面走過,并問三個人各自額頭上的數字是什么。但第一輪每個邏輯學家都回答他們無法推測自己的數字是什么。游戲組織者只好進行第二輪的發問,這是為什么?你能據此猜出三個邏輯學家的數字嗎?
[5]12個有趣的C語言面試題
12個C語言面試題,涉及指針、進程、運算、結構體、函數、內存等內容,比如:?
內存泄露:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 1.? #include<stdio.h> 2.?? 3.?? void? func( void ) 4.? { 5.?????? printf ( "\n Cleanup function called \n" ); 6.?????? return ; 7.? } 8.?? 9.?? int? main( void ) 10. { 11.????? int? i = 0; 12.? 13.????? atexit (func); 14.? 15.????? for (;i<0xffffff;i++); 16.? 17.???? _exit(0); 18. } |
這是因為_exit()函數的使用,該函數并沒有調用atexit()等函數清理。如果使用atexit()就應當使用exit()或者“return”與之相配合。
[6]Java程序員面試中的多線程問題
這篇文章收集了 Java 線程方面一些典型的問題,
比如:?
為什么需要 run ()和 start ()方法,我們可以只用 run ()方法來完成任務嗎??
我們需要 run ()&start ()這兩個方法是因為 JVM 創建一個單獨的線程不同于普通方法的調用,所以這項工作由線程的 start 方法來完成,start 由本地方法實現,需要顯示地被調用,使用這倆個方法的另外一個好處是任何一個對象都可以作為線程運行,只要實現了 Runnable 接口,這就避免因繼承了 Thread 類而造成的 Java 的多繼承問題。?????????????????????
[7]設計模式大集錦 程序員面試全攻略
無論你是參與Java面試還是C#面試,設計模式和軟件設計問題在程序員面試中是必不可少的一部分。本文總結了在各種面試過程中經常被提及的一些設計問題。文中分為兩部分,一類為初學者,另一類專為中高級技術人員準備。
[8]如何在面試時寫出高質量的代碼
如何在面試時能寫出高質量的代碼,是很多程序員關心的問題。作者總結自己多年面試他人以及被他人面試的經驗,發現應聘者可以從代碼的規范性、完整性和魯棒性三個方面提高代碼的質量。
[9]編程技術面試的五大要點
編程面試是程序員面試過程中最為重要的一個環節,其中主要關注應聘者五種素質:
(1)扎實的基礎知識
(2)能寫高質量的代碼
(3)分析問題時思路清晰
(4)能優化時間效率和空間效率
(5)具備包括學習能力、溝通能力、發散思維能力等在內的綜合能力。
[10] 談談對于技術面試的心得體驗
博主在文中談到,一個公司的技術面試需要有良好的經驗傳承,不光光只是留來一些題庫;也不光光是一句要相互尊重,你代表公司的形象;更重要的如何去主導一場面試,全面、準確的了解對方的能力。一般情況下,軟件公司招人總會對這三個方面的能力做一下考核,一是編程語言,二是數據結構與算法,三是系統設計。
?
總結
以上是生活随笔為你收集整理的IT旅途——程序员面试经验分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个初级程序员学习新技术的策略
- 下一篇: Linux命令之whereis