這個夏天除了出國準(zhǔn)備,時間基本都用在寫Leetcode上铭乾。從6月28日到8月25日剪廉,終于寫完了非premium部分的300多題,解答全部用C++編寫炕檩,備份在Github上:
https://github.com/kophy/Leetcode
嚴(yán)格來說這次不算一刷斗蒋,大三找實習(xí)時寫過大約60題,之后找到實習(xí)了主要是水平太低各種不會就沒有寫完笛质。實際上這次也經(jīng)常不會泉沾,不少hard題干脆就是“讀題->理解別人的solution->改寫”的三步走,所以等到美帝安頓下來经瓷,還得用碎片時間二刷爆哑。
現(xiàn)在思考下來,覺得Leetcode難舆吮,并不是因為需要深厚的知識儲備(或者說廣度)揭朝,實際上操作的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組队贱、鏈表、hash表潭袱、棧柱嫌、隊列、樹屯换,最多加上優(yōu)先隊列和集合编丘,常用的算法也不過雙指針、遞歸彤悔、動態(tài)規(guī)劃嘉抓、回溯以及圖上的BFS、DFS晕窑、拓撲排序抑片,偶爾有生僻的算法如reservoir sampling,但那也就1道杨赤。
Leetcode的難敞斋,體現(xiàn)在需要深入理解算法,讓算法“活”起來疾牲。打個比方植捎,好像英語考試?yán)锏耐晷翁羁眨瑑H僅知道選項的含義是不夠的阳柔,還要考慮語境和時態(tài)焰枢。所以個人覺得Leetcode的分類做得不太準(zhǔn),了解回溯法的話盔沫,可以輕松手撕hard的N皇后問題医咨,但要深刻理解動態(tài)規(guī)劃才能解好medium的幾道股票題。
這次刷題也幾次想放棄架诞,不過堅持下來拟淮,或許算邁出了從0到0.001的一小步?
在聽高橋優(yōu)的「光の破片」谴忧,很適合這一段旅程結(jié)束與另一段旅程開始的交接點很泊。