閒聊
我的第一篇頭條文章,不想贅述算法與數據結構本身存在的重要性以及對工作面試的重要性。我只想談談如何通過解決一道道算法題,慢慢的改變自己對算法的態度,並且從算法中獲得自信,如果以下論述我們產生了些許共鳴!請關注我,讓我們一起努力,一起刷爆leetcode吧。
堅定想法
曾幾何時,在無數個瞬間。可曾遇到過這些情況
- 算法很重要,我要刷一刷算法;
- 背了幾題,但不刷刷算法我還是慌的;
- 算法雖很重要,但我工作上沒怎麼用上;
- 我刷過了,但面試我怎麼打不出來;
- 刷了幾題,太難了,我放棄;
- ....
講真放棄的理由千千往往,堅持的理由我覺得只有興趣和生存。只要是抱著生存的理由,那放棄的理由分分鐘淹沒他,除非真的找不到工作活不下去,就算如此,還能轉行,直接逃避......,說這些就是想讓自己和大家認清本質,堅定一下刷算法的的信念,走出第一步告訴自己:我需要刷題,我要刷題!
如何刷題到自信
當看到這裡,我相信刷過題的人都有過類似經驗
- 第一次平靜的打開某算法庫官網(這個主要是LeetCode),
- 然後打開第一個題,看了題目有點思路,一寫代碼結果各種輸入判斷,代碼編譯上的錯誤都會遇到
- 千辛萬苦ac後發現只打敗了30%的人。完全沒有考慮過時間複雜度,空間複雜度,不過好歹過了
- 然後繼續刷,沒過多久就遇到了一題懵逼或者死磕磕不出的題,然後看題解
- 看懂的題解我們會驚呼怎麼想到的,沒看懂的題解會沮喪這也太難了,半天看不懂的題解完全就打擊到了自信心
- 最終刷題結束,然後可能沒有然後了,或者過幾天再來掙扎一下。
- 那些掙扎過並堅持下來的人,我相信算法面試穩了但不一定自信,除非養成了刷題的習慣
這經歷完全是自我打擊的過程,說到底還是打開的姿勢不對。沒有找準刷題的基本思想和步驟,試試下面的刷題步驟
- 打開一題算法,先看題目,5-10分鐘毫無思緒或者無法解決,
- 直接看題解,題解一般會有多種解法,找最優解看懂了背下來
- 然後不看題解去解題,ac後不急,多默寫幾遍ac幾遍,直到相信自己明天起床也能穩穩的ac
- 接著可以再去看題解,去比較其他解法,分析他們的時間複雜度和空間複雜度,看最優解做的優化
- 通過比較,肯定是可以加深最優解的印象。最後重新打開這道題
- 看題,思考給出各種解法的思路以及複雜度,最後選出最優解,把它寫下來。
- ac的那一刻,你的自信就來了。
- 當隔了一星期,你再來解這道題一次ac,穩如狗就更自信了。否則也不會沮喪,只是查漏補缺而已,幾分鐘後依舊ac。
技巧與心得
- 遇到不會的題不要慌,看題解
- 文字類的表述不如視圖類的直觀,儘量找圖文並茂精選圖解,或者看leetcode國際站的大牛題解
- 圖解依舊看著吃力,可以在嗶哩嗶哩或者YouTube上,通過leecode + 題號,搜索高收視率的視頻觀看
- 反覆研讀觀看,相信我你最終會懂的
最後的最後
我想說且是重點的,未來我將帶領各位盆友一起刷算法題,後續我會通過視頻+圖文的方式來分享每一題的思路和多種解法代碼。同時教會大家更方便,高效的刷題。
我是Yangcy,該吃吃該喝喝,該學還得學,我們一起加油!
閱讀更多 Yangcy跟我學 的文章