1、LeetCode
傳送門:https://leetcode.com/
首要推薦的就是LeetCode。這個(gè)網(wǎng)站應(yīng)該是最廣為流傳,也是公認(rèn)最適合的準(zhǔn)備算法面試編程的網(wǎng)站了。這個(gè)網(wǎng)站現(xiàn)在有200+道算法編程題,支持c/c++, Java, Python等多種語言的測(cè)評(píng)?,F(xiàn)在這個(gè)網(wǎng)站擴(kuò)充了題目類型,已經(jīng)加入了數(shù)據(jù)庫SQL語言題目和Shell編程題目。
2、LintCode
傳送門:http://www.lintcode.com
這個(gè)網(wǎng)站是新出來的,和leetcode非常相似的算法面試編程網(wǎng)站。該網(wǎng)站現(xiàn)在只有算法面試題,而且論壇功能還處于開發(fā)階段。不過網(wǎng)上已經(jīng)有了這個(gè)網(wǎng)站題目的題解供其他用戶參考。
3、Codility
傳送門:https://codility.com/programmers/
這個(gè)網(wǎng)站也是一個(gè)算法面試編程網(wǎng)站,但難度上要比上面兩個(gè)網(wǎng)站的題目要大。另外,這個(gè)網(wǎng)站還有在線比賽,比賽成績好的選手可以有更多機(jī)會(huì)被HR發(fā)現(xiàn)。
4、Hackerrank
傳送門:https://www.hackerrank.com
這個(gè)網(wǎng)站就厲害了。很多大公司,包括Google,F(xiàn)acebook會(huì)在這里舉辦算法競(jìng)賽比賽。競(jìng)賽成績好的選手可以直接獲得面試資格。這個(gè)網(wǎng)站同時(shí)還提供了Shell編程,AI編程等模塊的訓(xùn)練,以及編程基礎(chǔ)培訓(xùn),極大地融合上面所有網(wǎng)站的特點(diǎn)。
5、TopCoder
傳送門:www.topcoder.com
為什么要關(guān)心算法、數(shù)據(jù)結(jié)構(gòu)和復(fù)雜性? 好吧,有一個(gè)實(shí)用的結(jié)論:在工作中,即使你從來沒有用到這些東西,但是,大多數(shù)一流的支付公司在面試中會(huì)測(cè)試這些內(nèi)容。我決不瞎扯,算法真的很有用,就像我發(fā)現(xiàn)數(shù)學(xué)很有用一樣。任何特定算法適用于任何特定問題的概率很低,但從總體上說明什么類型的問題如何解決,什么樣的問題難以處理,通常當(dāng)近似有效時(shí)就有用了。
《Cracking the Coding Interview》
《程序員面試金典》的作者M(jìn)cDowell,是原Google資深面試官的經(jīng)驗(yàn)之作,層層緊扣了程序員面試的每一個(gè)環(huán)節(jié),全面詳盡介紹了程序員應(yīng)當(dāng)如何應(yīng)對(duì)面試才能脫穎而出。
該書涉及到面試流程解析、面試官的幕后決策及可能提出的問題、面試前的準(zhǔn)備工作、對(duì)面試結(jié)果的處理等內(nèi)容,還涵蓋了數(shù)據(jù)結(jié)構(gòu)、概念與算法、知識(shí)類問題和附加面試題四個(gè)方面,為讀者提供了來自Google、Facebook、Microsoft等多家知名公司的編程面試題,并為每一道面試題分別給出了詳細(xì)的解決方案。
我會(huì)向那些并沒有真正掌握算法、但又想通過面試的程序員推薦這本書。這本書讀起來尚可,不過并不能真正教會(huì)你知識(shí),如果想真正掌握算法和數(shù)據(jù)結(jié)構(gòu),那么繼續(xù)往下看。
《Algorithms》
《算法概論》是一本適合入門的讀物,但卻不失深度以及廣度,讀來讓人興趣盎然。我認(rèn)為,認(rèn)真讀完這本書,并且思考每章后面的習(xí)題,會(huì)對(duì)算法有一個(gè)很好的大局觀。當(dāng)然要掌握算法,只靠這一本書是不夠的,不過算作最佳入門是當(dāng)之無愧的。
該書全面介紹了算法的基本知識(shí),將算法分成類(例如分治法、,或貪婪算法),在表達(dá)每一種技術(shù)時(shí),強(qiáng)調(diào)每個(gè)算法背后的數(shù)學(xué)思想,讓你掌握如何判斷應(yīng)該使用什么樣的算法來解決特定的問題。
該書合理挑選主題,厘清了一條算法這門學(xué)問的線索,對(duì)結(jié)構(gòu)的精心安排,對(duì)問題的數(shù)學(xué)結(jié)構(gòu)的剖析,從而推出一個(gè)算法的過程的講解。長度適宜,僅有三百多頁,可以利用幾個(gè)周末進(jìn)行閱讀。
不過,我知道有些讀者不會(huì)喜歡這本書,因?yàn)樗颂嗟臄?shù)學(xué)思想。如果是你,我猜你可能喜歡Skiena著的那本書。
另外還有一點(diǎn)可以通過自身的學(xué)習(xí)來獲取一大進(jìn)步。
分享給超過5萬的程序員朋友下載,這次我把所有干貨重新梳理精簡,免費(fèi)給大家 。
究竟有哪些干貨呢?先給你們一個(gè)目錄:
獲取方式:
免費(fèi)領(lǐng)取資料:請(qǐng)搜尋 共眾號(hào) “程序員精選”。
聯(lián)系客服