[LeetCode刷題筆記] 關於LeetCode的前言

tostq發表於2016-07-22

原創文章

轉載請註冊來源http://blog.csdn.net/tostq


       又到了一年畢業就業季了,三年前的校招季我逃避了,可這一次終於還是要輪到我了=_=||。
       作為要準備踏入碼農行業的人來說,要準備校招,怎麼能不去刷刷LeetCode呢?
       LeetCode收錄了許多網際網路公司的演算法題目,被稱為刷題神器,我雖然早有耳聞,不過卻一直沒有上面玩過。即使這一年多來,做的程式設計還是挺多的,不過畢竟不是計算機專業的科班出身,在程式設計過程中土路子實在太多了,有時不僅寫得煎熬,而且書寫很多時候都非常不規範。所以就決定在找工作前夕,花點時間好好刷刷LeetCode。
       主要的目的:
       1、熟悉各網際網路公司的演算法題目,為找工作做準備。
       2、複習以前學過的程式語言,LeetCode支援幾乎所有主流程式語言,大家可以用不同語言來做題。
       3、熟悉常見的演算法和資料結構,LeetCode提供了交流平臺,一些大神會將自己的解法貼出來共享,有些巧妙的解法實在令人叫絕,雖然幾乎都是英文,但上面的國人也特別多(中文拼音名字>_<)。
       4、學習別人的程式設計思維,加快程式設計的速度,避免常見的BUG。
       LeetCode的題目並不多,目前大概有358道,不過有些題是加鎖的,好像有付費才能使用,能做的題應該有150多道吧,這也是完全足夠了。
       另外LeetCode的題型都非常簡單明瞭,並不需要的複雜的理解,一般都在50行以內就可以解決了,如果你寫了上百行程式碼,就肯定說明你想太多了或太複雜,雖然都能用很短的程式碼就能解決,但並不意味著LeetCode的題目非常簡單,實際上LeetCode基本上涉及到了所有常規的演算法型別。
       關於LeetCode的刷題時間:個人認為大概是要一個月左右,如果你是大神的話,也許大概能在兩到三個星期間刷 完,不過做為新手,除了埋頭做題,更重要的是去討論區看看別人的程式碼或思路。像我的話,基本上每道做完後都會去看看別人的解法,雖然速度慢了點,不過會學到了許多。
       關於本系列部落格:LeetCode我現在雖然還沒刷完,但也刷了很多,寫這個部落格的目的主要是記錄總結刷題的過程,防止過段時間又忘了曾經自己所寫,整個系列的部落格應該會有20~30篇左右,應該會在今年9月份結束。另外部落格主要是以專題的形式分類(比如數學類、陣列類、連結串列類)記錄題目,並不會單獨把一個題拿出講。
       好了,現在就讓我們開始LeetCode吧!
       首先我們需要在leetcode上註冊一個賬號,然後登入,開始我們的程式設計吧!


一、選擇題目型別
       最上面標籤欄Problems,給出了三個分類:Algorithms、Database、Shell,分別表示演算法題、資料庫題、Shell指令碼題,第一個就是我們所需要的演算法題。


二、選擇演算法題
       點開Algorithms後,我們可以看到一列題目的列表,每個題目都有獨一無二序號,後面的接受率(Acceptance)表示提交的正確率,Difficulty表示難易程度。
       LeetCode按難易程度分成了:Hard、Medium、Easy三個級別。
       Easy級別一般並不需要太多思考就可以想到演算法,甚至可以通過直接的方式,特別適合新手去熟悉程式語言。
       Medium級別就會有些難度,一般都會涉及到經典的演算法,需要一定的思考。
       Hard級別是最難的,有些時候是演算法本身的難度,有些時候特別需要你考慮到各種細節。
       每個題目前面的小箭頭表示該題已經完成。題目列表最上方有一個Choose one filter,可以將已完成的題目從列表中去掉。


三、篩選某一型別的題
       如果我們只想要找某一型別的題,可以通過Tags或Company來篩選
       在題庫的右邊欄可以看到如下,這裡列出許多公司的題目
       另外,如果我們只想做關於字串、陣列或連結串列相關題,可以通過Tags
       如果我們在做某一題時,覺得還想再做一個類似的,鞏固一下,可以通過該題下面的Show Similar Problems和Tags來找到相似的問題

四、如何和別人討論
       每個題目都有各自的Discuss按鈕,點選進入後,就能看到了討論區。
       在這裡,許多人都把自己的程式碼放到了上面,就像BBS一樣,你可以發貼提問,也可以回覆別人。


五、關於程式碼編寫、測試與提交
       點開我們選擇的題目後,就可以進行程式碼編寫了,LeetCode一般都會直接提供一個函式式介面,我們只需要編寫函式內部就可以了,而需要考慮到庫檔案,另外,在上面選擇欄中,可以切換選擇自己需要的程式語言。

       程式編寫完了之後,不要急著提交(Submit Solution 按鈕),先可以測試執行下(Run Code)
       我們還可以點開Custom TestCase旁邊的小框,點開後,可以在裡面輸入我們自己設定的輸入值。

       一般情況,陣列的輸入形式是[a1,a2,a3,a4……]
       當然我們測試完整無誤後,再選擇提交Submit Solution。
       如果出現錯誤,會有提示。
       如果正確無誤,會有如下提示:

       我們可以點開More Details檢視詳細結果說明
       或者點開Next challenges 旁邊的題繼續做題。

六、檢視自己提交的題目
       在最上面標籤欄找到自己,選擇:
       My Submissions:可以找到自己提交的題目(包括了正確提交和錯誤提交)提交的程式碼也是都是可以看到的
       Manage Sessions:主要是管理自己的提交情況,錯誤率和正確率,總完成率之類。
       每道題旁邊的My Submissions可以找到自己的對於該題的提交情況
       點開後,就可以找到自己過去所有的提交,
       點Accepted 或 Wrong Answer就可以檢視自己過去提交的程式碼情況,當然還有得分。

相關文章