讓我們接續上一篇 所以我說,為什麼要用解題開始?解題能吃嗎?
所以要哪裡找面試題呢?本次系列會從LeetCode與《Cracking the Coding Interview, 6th Edition》一書內挑出一系列的題目,下面做一點簡單介紹:
LeetCode其實相關介紹已經不少了,這邊就簡述就好。
LeetCode是一個蒐集程式面試題的網站,裡面有十分大量的面試題,並且有提供線上對答案的功能,而且也提供不少程式語言能使用。另外在對答案時也會計算花費時間、記憶體、速度排行等,每一題裡的討論區也是各種高手過招。
個人第一次接觸到面試題就是LeetCode,要說心得嘛……
感覺像是大腦在星爆
完整體驗到自己還有不少要學的
當然也有不少比較刁鑽的問題,就像Google會問人孔蓋為什麼是圓的一樣(雖然現在走去馬路上,大概就會看到方形的人孔蓋……),比較刁鑽或Hardcore的題目就不在本次範圍內。本系列會盡量挑選第一次也能挑戰的題目,當然隨著進度也會稍微提升一點挑戰性,大家不必過於擔心。
另外一個個人的小感想:上面的難度標示真的是參考用,有些Medium的就真的難到哭出來
我們簡稱它CTCI吧,這是一本非常豐富的書籍,從面試到程式概念、面試題目都有收錄。當然也因為內容十分豐富,題目難度也相對提升不少,本次僅會挑選較簡單的題目,選題的數量也較少。
當然此書也有自己的官網,裡面的solutions有連結到github上放解答的(僅解答,無講解),若各位遇到這些題目,想查看沒有提到的程式語言解法,也可以前往察看。
這裡有件有趣的事情,LeetCode與CTCI的部分題目是有重疊的,可見這些題目的經典
建議在看文章之前,先嘗試思考/解答題目一次,先嘗試自行解題,再來看詳解勢必會收穫更多。如果是入門新手,也建議先使用LeetCode,能先省去架設環境的步驟,也能夠有個地方對答案。
當然剛開始寫會比較抖沒錯,個人建議先求有再求好,先寫出解法再做效能的改善,先找到出路再來找最短路徑才會比較順手喔。
註記:但如果手法太暴力,LeetCode會提醒你超出時間限制而不給過關
下一篇將會挑選一題十分簡單的開胃菜,帶各位開始攻略題目之旅。