走的前端方向,現在準備刷刷演算法題,求推薦好的演算法書?
之前看到過一個問題,裡面好幾個人都推薦了一本演算法書,可惜可惜忘了收藏找不到了。
我大三,最近著手研究演算法,刷刷題為了校招做準備,希望大家能推薦本全面點的演算法書,謝謝。嗯,嚴蔚敏的數據結構就不用推薦了,我有。
鑒於有人提出說前端不適合刷這些我說的東西,特地澄清一下本人對前端的看法。
在我看來前端也需要其他語言程序員一樣的知識和技能,只不過是用的語言不通,而且現在前端的大趨勢都是前端要自己寫獨立的server來跟真正的後端交互,所以免不了涉及到很多演算法和數據結構的問題。前端絕不僅僅是html+css+js+各種庫和框架來實現帶有交互功能的頁面,或者換句話說,我理解的前端是具有實現頁面布局和功能能力的javascript工程師。
----------------------
不太清楚國內的小夥伴們是什麼情況, 美國的小夥伴們都是Cracking the Coding Interview: 150 Programming Questions and Solutions: Gayle Laakmann McDowell: 9780984782802: Amazon.com: Books + LeetCode Online Judge.假設樓主是有點基本的演算法和數據結構的概念的, 直接開始刷題吧....遇到不會不熟或者沒聽過的名詞, 演算法, 概念什麼的在去網上搜索查, 現在資料太多了. 貌似這兩個都有中文的版本, 樓主請自行搜索.
以本人的經驗簡單的說下怎麼刷, 先cc150然後leetcode.
第一遍cc150: 特別痛苦, 先確定題目能看懂, 不懂的名詞概念去搜, 然後開始寫, 切記: 第一遍永遠不要看答案, 不管自己寫的多醜, 只要問題解決就行, 實在想不出來怎麼寫就跳過.
第二遍cc150: 慢慢開始適應刷題的節奏, 改進之前會寫的, 然後去網上搜自己不會寫的, 看會然後寫.
第三遍cc150: 繼續改進會寫的, 之前不會寫的也因為網上的搜索而有頭緒, 這時候, 再能夠獨立寫出答案的前提下, 去對照答案, 想想你為什麼這麼寫, 答案為什麼那麼寫.
4-7 遍: 有些題目很熟悉了, 有些不熟悉的也會稍微有點頭緒. 繼續堅持一個原則, 獨立完成然後對照答案; 不能獨立完成的google or baidu or starckoverflow, 看會怎麼寫了自己再寫.
8+ 遍: 現在已近很熟悉了吧, 有空該想想優化的問題了.
10+ 遍以後, 你已經完成了學習的過程, 開始leetcode實戰吧. 相信此時樓主也能後自己根據自己的情況制定自己的計划了.
當leetcode90%能通過後, 身邊的小夥伴們和本人在矽谷大小公司的技術面試中, 都能做到輕鬆應付. 此處說的只是技術面試, 不包括面試的其他部分.數據結構和演算法javascript描述 適合門外漢開竅 難度很平易近人
前端需要學演算法嗎
演算法導論。。
推薦閱讀:
※知乎登錄頁背景,動態的網格是怎麼做出來的?
※在哪裡可以看別人寫的代碼?
※前端有哪些好的學習網站?
※CSS布局中有什麼不好的習慣?