[LeetCode刷題筆記] 關於LeetCode的前言
原創文章
轉載請註冊來源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。
如果出現錯誤,會有提示。
如果正確無誤,會有如下提示:
或者點開Next challenges 旁邊的題繼續做題。
六、檢視自己提交的題目
在最上面標籤欄找到自己,選擇:
My Submissions:可以找到自己提交的題目(包括了正確提交和錯誤提交)提交的程式碼也是都是可以看到的
Manage Sessions:主要是管理自己的提交情況,錯誤率和正確率,總完成率之類。
每道題旁邊的My Submissions可以找到自己的對於該題的提交情況
點Accepted 或 Wrong Answer就可以檢視自己過去提交的程式碼情況,當然還有得分。
相關文章
- LeetCode 刷題筆記LeetCode筆記
- leetcode刷題筆記LeetCode筆記
- leetcode刷題筆記605LeetCode筆記
- leetcode刷題筆記(3)(python)LeetCode筆記Python
- LeetCode刷題筆記9.2-9.9LeetCode筆記
- leetcode刷題筆記8.5-8.9LeetCode筆記
- LeetCode刷題記錄LeetCode
- Leetcode刷題筆記8.12-8.16LeetCode筆記
- Leetcode刷題中關於java的一些小問題LeetCodeJava
- leetcode刷題記錄 661~LeetCode
- 刷題記錄:劍指offer+遇到的筆試題+LeetCode筆試LeetCode
- Leetcode171-190刷題筆記(非困難題)LeetCode筆記
- 【刷題筆記】LeetCode-53 最大子陣列和筆記LeetCode陣列
- 用 elixir 刷 LeetCode 的一些筆記LeetCode筆記
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode 刷題—樹LeetCode
- LeetCode刷題記錄——day1LeetCode
- LeetCode刷題記錄——day2LeetCode
- LeetCode刷題記錄——day3LeetCode
- LeetCode刷題記錄——day4LeetCode
- LeetCode刷題記錄——day5LeetCode
- 【LeetCode刷題筆記-33 649:Dota2 參議院】LeetCode筆記
- LeetCode-劍指Offer刷題記錄LeetCode
- LeetCode刷題記13-27. 移除元素LeetCode
- 如何使用leetcode刷題LeetCode
- leetcode刷題--Majority ElementLeetCode
- leetcode刷題--Count PrimesLeetCode
- leetcode刷題--Reverse BitsLeetCode
- leetcode刷題--Rotate ArrayLeetCode
- leetcode刷題--Count and SayLeetCode
- Leetcode刷題分類LeetCode
- Leetcode刷題準備LeetCode
- LeetCode刷題—陣列LeetCode陣列
- LeetCode刷題記錄與題解(C++版本)LeetCodeC++
- 【刷題日記】leetcode-767 重構字串LeetCode字串
- 【刷題日記】leetcode-493 翻轉對LeetCode