【算法基础】坚持刷题678天的感受!
作者:胡來,中山大學,Datawhale成員
通過自己678天的刷題,不斷總結自己和別人的經驗,有以下幾點感受與大家分享。
弄清楚為什么要刷題?
刷題的原因各種各樣,結合本人和朋友的經歷,以及網上大家的分享,比較有代表性的原因有以下四種:
找工作。當下找工作的氛圍下,不管是社招,還是校招,都不可避免的會有上機考試或者面試時手撕代碼。
自我能力提升。畢竟在學完相關的理論知識后,還是需要結合實際的編程,將理論很好的掌握,也是進一步強化對編程的熟悉程度、提升自己的能力。
編程大賽/考試。現在LeetCode的每周競賽、ACM大賽、藍橋杯和各種極限編程大賽,以及計算機二級考試、PAT考試、課程的上機考試、計算機方向考研或者保研復試的上機考試等,這些都對編程有著一定的要求,促使大家去刷題,提升自身能力,在競賽或考試中取得理想的成績。
興趣愛好、放松,提升自信心。有些人喜歡編程,還有些人拿刷題作為一種放松(……),再或者是在其他方面沒有信心但是在編程上很擅長,進而通過刷題來提升一下自己的信心。
不管何種理由都促使我們去刷題,只有在刷題前搞清楚自己是為了什么,這樣才會有更多的動力去刷題。
刷題前需要做哪些準備?
有一門熟悉的編程語言。個人推薦C++或者Java。
了解基本數據結構和常用算法
A. 基本的數據結構包括:棧、隊列、鏈表、樹、堆等;
B. 常用的算法:動態規劃、分治算法、貪婪算法等。
基本知道如何入手進行算法設計和分析
A. 算法設計:可以根據要求設計完成相應任務的算法;
B. 算法分析:給出一個算法可以從時間復雜度和空間復雜度進行分析。
小白如何刷題?
根據刷題的目的不同和刷題中會遇到的問題,分為三個部分,具體如下:
1. 目的:建立扎實的Coding能力
推薦刷LeetCode中的題目作為練習和提高,目前已有題目2094道。
具體執行為:
① 掌握一門基本的編程語言,推薦Java和C++;
② 按照特定模塊進行系統性刷題。(千萬不要簡單地按照easy, mid, hard的順序來隨機刷題); ? 具體按照哪一種模塊的順序刷題可以參考刷題的知乎問答(鏈接:https://www.zhihu.com/question/36738189)
③ ?必須要反復刷題,做到一題多解(時間允許分析每一種解法復雜度),而且不能只盯著高頻題目;
④ ?具體刷題時:一看二抄三改四寫;
⑤ ?現在LeetCode有上千道題,每個部分一定要找有代表性的題目去做,而且在刷題過程中會有模板去套用。
2.目的:建立求職面試的解題思維
推薦刷《劍指OfferⅡ》,其中一共75道題,但是設計各種變形。建議刷至少3遍。
具體執行為:
第一遍,不需要死磕,但是要完全弄懂題目,必須看題目的分析。
第二遍,進一步熟悉題目,對于一道題的各種變形也可以做出。
第三遍,對于這不到100道題和一些相應的變形已是特別熟練的狀態,上機編程沒問題,手撕代碼也是ok的。
3.目的:解決可能的問題
A. 可能會遇到的問題
①刷過的題老是忘、②刷題的速度很慢、③堅持不下來
B. 對應解決方案:
①及時重復、與人分享,以及做筆記;
②制定計劃、分解計劃、快速刷題(為了節約時間,五分鐘沒有思路,就別浪費時間了。明確認知,這個和高考刷題沒什么區別,理解不了,先背下來。);
③為自己制定獎懲措施,或者組隊刷題。
小白刷題法刷題資料整理
根據本人的經驗,再結合網上大家的分享,有一些書籍和網站,以及其他的網絡資源可以推薦給大家。
1.書籍
《大話數據結構》、《啊哈!算法》、《圖解算法》
2.刷題網站
LeetCode、牛客、PAT
3.其他網絡資源
① https://github.com/liuchuo
② ?https://leetcode-cn.com/circle/discuss/nRXySQ/
③ ?https://github.com/Jack-Cherish/LeetCode
④ https://www.mdeditor.tw/pl/gmDL
⑤ https://labuladong.gitbook.io/algo/
最重要的一點
掌握理論固然重要,更重要的還是要動手實踐。
重要的事情說三遍:Coding、Coding、Coding
最后送給大家我很喜歡的一句話:日拱一卒 功不唐捐
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【算法基础】坚持刷题678天的感受!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win11文件夹怎么放到文件栏
- 下一篇: 大地win11 64位官方版镜像v202