資料結構與演算法/leetcode/lintcode題解
- English via
- 简体中文请戳 数据结构与算法/leetcode/lintcode题解
- 繁體中文請瀏覽
本文檔為資料結構和演算法學習筆記,全文大致分為以下三大部分:
- Part I為資料結構和演算法基礎,介紹一些基礎的排序/鏈表/基礎演算法
- Part II為 OJ 上的程式設計題目實戰,按題目的內容分章節編寫,主要來源為 https://leetcode.com/ 和 .
- Part III 為附錄部分,包含如何寫履歷和其他附加資料
本文參考了很多教材和部落格,凡參考過的幾乎都給出明確超連結,如果不小心忘記了,請不要吝惜你的評論和issue :)
本項目保管在 https://github.com/billryan/algorithm-exercise 由 渲染生成 HTML 頁面。你可以在 GitHub(不是 Gitbook) 中 star 該項目查看更新,也可以訂閱 https://ds-algo.slack.com/messages/github_commit/ 中的 channel 在郵件中查看更新細節。RSS 種子功能正在開發中。
Slack 的自助邀請註冊功能已啟用,訪問 即刻開啟~
你可以線上或者離線查看/搜索本文檔,以下方式任君選擇~
- 線上閱讀(由 Gitbook 渲染) http://algorithm.yuanbin.me
-
- EPUB. , Gitbook, - 適合在 iPhone/iPad/MAC 上離線查看,實測效果極好。
- MOBI. GitHub, , 七牛 CDN(中国大陆用户适用) - Kindle 專用. 未測試,感覺不適合在 Kindle 上看此類書籍,儘管 Kindle 的屏幕對眼睛很好…
Google 站內搜索:
- Swiftype 站內搜索: 可使用網頁右下方的 進行站內搜索
授權條款
本作品採用 創用CC 姓名標示-相同方式分享 4.0 國際許可協議 進行許可。傳播此文檔時請注意遵循以上許可協議。 關於本授權的更多詳情可參考
本著獨樂樂不如眾樂樂的開源精神,我將自己的演算法學習筆記公開和小夥伴們討論,希望高手們不吝賜教。
多國文字
如果你發現任何有錯誤的地方或是想更新/翻譯本文檔,請毫不猶豫地猛點擊 貢獻指南.
如何練習演算法
雖說練習演算法偏向於演算法本身,但是好的程式碼風格還是很有必要的。粗略可分為以下幾點:
- 程式碼可為三大塊:異常處理(空串和邊界處理),主體,返回
- 程式碼風格(可參考Google的程式設計語言規範)
- 變量名的命名(有意義的變數名)
- 縮排(語句塊)
- 空格(運算子兩邊)
- 程式碼可讀性(即使if語句只有一句也要加花括號)
- 《Code Complete》中給出的參考
- 總結歸類相似題目
- 找出適合同一類題目的模板程序
- 對基礎題熟練掌握
以下整理了一些最近練習演算法的網站資源,和大家共享之。
線上OJ及部分題解
- - 找工作方面非常出名的一個OJ,每道題都有 discuss 頁面,可以看別人分享的程式碼和討論,很有參考價值,相應的題解非常多。不過線上程式碼編輯框不太好用,寫著寫著框就拉下來了,最近評測速度比 lintcode 快很多,而且做完後可以看自己程式碼的運行時間分布,首推此 OJ 刷面試相關的題。
- LintCode | Coding interview questions online training system - 和leetcode類似的在線OJ,但是篩選和寫程式碼時比較方便,左邊為題目,右邊為程式碼框。還可以在處選擇 CC150 或者其他來源的題。會根據系統locale選擇中文或者英文,可以拿此 OJ 輔助 leetcode 進行練習。
- - 題解部分十分詳細,比較容易理解,但部分題目不全。
- FreeTymeKiyan/LeetCode-Sol-Res - Clean, Understandable Solutions and Resources on LeetCode Online Judge Algorithms Problems.
- - IT,演算法及面試。有知識點及類型題總結,特別贊。
- ITint5 | 專注於IT面試 - 文章品質很高,也有部分公司面試題評測。
- - 各類題解
- 牛客網-專業IT筆試面試備考平台,最全求職題庫,全面提升IT程式設計能力 - 中國一個IT求職方面的綜合性網站,比較適合想在中國求職的看看。感謝某位美女的推薦 :)
- - 程式碼品質不錯,整理得也很好。
- 七月算法 - julyedu.com - july大神主導的在線演算法輔導。
- - 時不時就會有驚喜放出。
- VisuAlgo - visualising data structures and algorithms through animation - 相當猛的資料結構和演算法可視化。
- - 同上,非常好的動畫示例!!涵蓋了常用的各種資料結構/排序/演算法。
- 結構之法 算法之道 - 不得不服!
- - 程序員面試藝術的電子版
- 程序員面試、算法研究、程式設計藝術、紅黑樹、數據挖掘5大系列集錦
- - CSDN上對《算法設計與分析》一書的學習筆記。
- 我的算法學習之路 - Lucida - Google 工程師的演算法學習經驗分享。
書籍推薦
本節後三項參考自九章微信分享,謝過。
- The Algorithm Design Manual, 作者還放出了自己上課的影片和slides - ,The Algorithm Design Manual (豆瓣)
- 大部頭有 Introduction to Algorithm 和 TAOCP
- Cracking The Coding Interview. 著名的CTCI(又稱CC150),Google, Mircosoft, LinkedIn 前HR離職之後寫的書,從很全面的角度剖析了面試的各個環節和題目。除了演算法資料結構等題以外,還包含OO Design, Database, System Design, Brain Teaser等類型的題目。準備北美面試的同學一定要看。
- 劍指Offer。適合中國找工作的同學看看,英文版叫Coding Interviews. 作者是何海濤(Harry He)。Amazon.cn上可以買到。有大概50多題,題目的分析比較全面,會從面試官的角度給出很多的建議和show各種坑。
- 進軍矽谷 — 程序員面試揭秘。有差不多150題。
學習資源推薦(繁體中文譯者)
(MOOC)