色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

新手如何有效的刷算法題(LeetCode)

算法與數據結構 ? 來源:五分鐘學算法 ? 2020-06-03 17:51 ? 次閱讀

前言

作為一名非科班出身的程序員,我是參加工作之后才開始接觸算法,學算法至今有將近五年的時間,期間輸出文字約 100 多萬,從算法小白到寫出百萬閱讀的算法文章,這一路歷程,有心酸也有掌聲。

過往歷歷在目,沒有誰比我更了解算法小白的焦慮與迷茫。

每每在公眾號后臺看到讀者留言求教時,我都在想:我能為他們做點什么。

我決定把我曾經踩過的坑以及總結出來的經驗毫無保留的分享給你,希望能為你撥開迷霧。

這些經驗并不會適合每個人,但或許也能對你有所啟發。

今天這篇文章聊的話題就是新手如何有效的刷算法題(LeetCode)。

如果你想要開始刷題,那么第一步就是:打開 LeetCode 官網,點擊標簽,選擇一道順眼的題目開始刷。

注意,在這過程中,不要左思右盼,不要去搜索與思考到底是刷 LeetCode 好還是去??途W刷劍指 Offer 好。

我作為一名算法小白的時候,就犯了這個錯誤:在粗略的了解基本的數據結構與算法后,準備開始刷題,總想著找一個最有效最好的刷題平臺。

一會在 LeetCode 題解區逛逛,一會在??途W看看面經,結果就是整個人煩躁不安,焦慮迷茫,題沒有刷幾道,羨慕嫉妒恨卻增加了幾分:別人的代碼怎么這么簡潔 ?別人的 Offer 怎么這么亮眼?

經過痛定思定之后,我開始自我剖析自己想好好刷題卻無效的原因:

1、沒有接受自己是算法小白的事實

我那時候只是按圖索驥般的稍微系統的接觸了基礎數據結構與算法知識,根本沒有真正的利用這些知識去處理問題。

在刷題的過程中,總想證明自己可以的,別人可以寫成簡潔高效的解題方法,我也要!于是去不停的找題證明自己,結果就是越刷越沒有效果,自己根本就看不懂題目考察的數據結構與思想。

整個人完全奔潰,不刷題了,不準備算法面試了,不準備跳槽了!

后來我不停的告誡自己:作為一名非科班的程序員,肯定比不上他們呀,如果隨隨便便的學了一點就能刷題順利,那別人大學四年不白學了!

所以前期先接受自己的思考方式,暴力解法其實也是一種有效的解法。

2、沒有合理的刷題

我只是盲目的追求刷題的數量,即使刷了 200 道,腦中依舊一團漿糊。

后來才明白,吃透一道題目比亂刷十道題目更有價值。

經過不斷的摸索與試驗,形成了自己的一套刷題路徑。

自己的解法

網上好的解法

自己的解法可以優化的地方

不停的優化

尋找相同的題型

總結

每一個題目都經過至少一遍這樣的迭代,徹底吃透一道題進而掌握一種題型。

以一道極其簡單的動態規劃題為例 ,LeetCode 第 70 號問題:爬樓梯。

當時的我根本不知道動態規劃的相關概念,什么狀態,什么轉移方程,通通沒聽過。

沒錯,當時就那么菜!

二話不說,直接使用暴力解法。

classSolution{ publicintclimbStairs(intn){ returncalcWays(n); } privateintcalcWays(intn){ if(n==1)return1; if(n==2)return2; returncalcWays(n-1)+calcWays(n-2); } }

很明顯,無腦的遞歸暴力解法包含了大量的重復計算,提交上去直接標紅提示超出時間限制。

后來看了網上高票答案的分析,知道了備忘錄的概念,于是很容易寫出優化后的代碼。

//采用備忘錄的方式來存子問題的解以避免大量的重復計算 classSolution{ int[]memo; publicintclimbStairs(intn){ memo=newint[n+1]; returncalcWays(n); } privateintcalcWays(intn){ if(n==1)return1; if(n==2)return2; if(memo[n]==0) memo[n]=calcWays(n-1)+calcWays(n-2); returnmemo[n]; } }

再后來,發現備忘錄是自頂 向下的方式,稍許變動,修改為自低 向上的遞推方式就是動態規劃的形式。

classSolution{ publicintclimbStairs(intn){ int[]memo=newint[n+1]; memo[0]=1; memo[1]=1; for(inti=2;i<=?n;?i++){? ????????????memo[i]?=?memo[i-1]?+?memo[i-2];? ????????}? ????????return?memo[n];? ????}? }

按照這樣的刷題路徑下來,發現對這類題型有了初步的思考途徑,有了發力點,再也不會一籌莫展:看題懵逼半小時,Coding 只會按空格。

徹底搞懂這題后,就需要找到類似的題型,然后不斷的重復練習:最小路徑和、整數拆分、完全平方數、解碼方法、不同路徑、不同路徑 II。

通過這些練習,尋找題目中的共同點,為什么這類題型都可以這樣思考呢?

慢慢的,知道了最優子結構、狀態轉移方程、重疊子問題的概念,不知不覺動態規劃的知識點已經掌握了 80%。

再遇到更高難度的動態規劃的題目時,心里也明白,一時半會沒做成無法就是最優子結構、狀態轉移方程、重疊子問題沒有理清楚。

這樣長期堅持下來,接觸新的題型時也可以從容不迫的思考。

后記

如果說成為大神有什么訣竅的話,那就是相信時間的力量,每天進步一點就夠了!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4607

    瀏覽量

    92835
  • leetcode
    +關注

    關注

    0

    文章

    20

    瀏覽量

    2318

原文標題:新手如何有效的刷算法題(LeetCode)

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    探索 MS37549 直流無馬達驅動方案的奧秘

    方案的神奇之處。 一、MS37549 直流無馬達驅動方案的簡介 MS37549 直流無馬達驅動方案是一種高效、可靠且性能卓越的技術解決方案。它采用了先進的控制算法和電路設計,能夠實現對直流無
    的頭像 發表于 10-18 17:55 ?181次閱讀

    新手用單電池阻抗跟蹤氣體壓力計

    電子發燒友網站提供《新手用單電池阻抗跟蹤氣體壓力計.pdf》資料免費下載
    發表于 10-18 11:23 ?0次下載
    <b class='flag-5'>新手</b>用單電池阻抗跟蹤氣體壓力計

    發電機是無好還是有

    發電機選擇無還是有,主要取決于具體的應用場景和需求。以下是對兩種發電機類型的比較: 一、有發電機的特點 價格與成本 :有發電機通常價格較為實惠,后期維護和修理相對簡單,成本也較
    的頭像 發表于 09-03 10:51 ?1974次閱讀

    電機和無刷電機的區別

    電機和無刷電機是兩種常見的電機類型,它們在結構、工作原理、性能特點以及應用領域上都有所不同。 有電機(Brushed Motor) 1. 結構 有電機主要由定子、轉子、電刷和換向器組成。定子
    的頭像 發表于 09-03 10:47 ?975次閱讀

    思爾芯賽正式發布,邀你共戰EDA精英挑戰賽!

    全新的挑戰。今年的賽,我們更加聚焦于數字集成電路設計的核心領域,直擊當前超大規模設計下硬件仿真的技術難點:設計并優化一種高效的超圖分割算法。該技術可以加速設計驗
    的頭像 發表于 08-03 08:24 ?652次閱讀
    思爾芯賽<b class='flag-5'>題</b>正式發布,邀你共戰EDA精英挑戰賽!

    BLDC電機控制算法詳解

    直流電機(Brushless DC Motor,簡稱BLDC電機)以其高效率、高可靠性和低噪音等特點,在工業、家電和汽車等領域得到了廣泛應用。為了實現BLDC電機的精確控制,需要采用適當的控制
    的頭像 發表于 06-14 10:49 ?1025次閱讀

    空心杯電機是有還是無

    空心杯電機是一種特殊類型的電機,它具有體積小、重量輕、效率高、響應速度快等特點。在選擇空心杯電機時,有和無是兩種常見的類型。本文將從多個方面對有和無空心杯電機進行詳細的比較和分
    的頭像 發表于 06-12 15:00 ?2098次閱讀

    求一種基于CW32的無直流空心杯電機無感方波控制驅動方案

    本方案采用CW32F030C8T6作為主控芯片,采用無感方波控制算法控制無直流空心杯電機。
    的頭像 發表于 05-28 10:47 ?846次閱讀
    求一種基于CW32的無<b class='flag-5'>刷</b>直流空心杯電機無感方波控制驅動方案

    基于CW32的無直流空心杯電機無感方波控制驅動方案

    適合用于電機控制。無感方波控制算法是一種簡單有效的電機控制算法,不需要使用霍爾傳感器,可以降低硬件成本。 本次采用的電機驅動板仍然為CW32_BLDC_EVA V5開發板,具體開發板的信息可以翻看上一節《基于CW32的無
    的頭像 發表于 04-24 15:38 ?1964次閱讀
    基于CW32的無<b class='flag-5'>刷</b>直流空心杯電機無感方波控制驅動方案

    直流電機驅動單元

    NEWUnitBLDCDriverUnitBLDCDriver是一款專為無直流電機(BLDC)設計的驅動單元,采用I2C通信接口,可同時掛載多路電機進行控制。適用于風扇、小型泵等小型無直流電機
    的頭像 發表于 04-13 08:29 ?692次閱讀
    無<b class='flag-5'>刷</b>直流電機驅動單元

    PMSM控制利用foc算法,靜止狀態下是如何啟動的?

    PMSM控制利用foc算法,靜止狀態下是如何啟動的,跟無直流電機梯形波控制的啟動方案一樣嗎?
    發表于 04-01 06:22

    新手學習單片機最常見的六大誤區!

    最近看到臺私信要資料的同學比較多,想必大家都是對單片機有著濃厚的學習興趣,但是很多新手開始入門單片機的時候都會遇到一些學習的誤區,今天就來整理一下大家可能會遇到的六大誤區。單片機作為嵌入式系統的核心
    的頭像 發表于 03-28 08:03 ?841次閱讀
    <b class='flag-5'>新手</b>學習單片機最常見的六大誤區!

    電機的核心電刷考量

    電子發燒友網報道(文/李寧遠)在電機向高能效發展的當下,有電機正在向無刷電機轉變。無和有的區別就在于無刷電機沒有電刷和換向器。電刷,是有電機極具特點也常常受詬病的裝置。 ? 電
    的頭像 發表于 01-24 00:17 ?4715次閱讀
    有<b class='flag-5'>刷</b>電機的核心電刷考量

    電機常見故障有哪些

    電機常見故障有哪些 有電機是一種常見的電動機類型,廣泛應用于各種電器和機械設備中。然而,由于長時間運行或其他原因,有電機也會出現一些常見故障。本文將詳細介紹有電機的常見故障及
    的頭像 發表于 01-04 11:26 ?2034次閱讀

    新手小白需要掌握的pcb設計基礎知識

    新手小白需要掌握的pcb設計基礎知PCB
    的頭像 發表于 12-25 10:12 ?1852次閱讀
    主站蜘蛛池模板: 亚洲春色AV无码专区456| 国产乱人伦AV麻豆网| 樱花草在线影视WWW日本动漫| 三级黄色在线| 青青草原影视| 欧美video巨大粗暴18| 蜜芽在线播放免费人成日韩视频| 精品午夜久久影视| 精品国产自在现线拍400部| 国内精品不卡一区二区三区| 国产精品久久人妻无码蜜| 国产GV天堂亚洲国产GV刚刚碰| 被cao的奶水直喷高H| 百性阁论坛首页| 村妇偷人内射高潮迭起| 高清观看ZSHH96的视频素材| 古代荡乳尤物H妓女调教| 国产99视频在线观看| 国产精品久久久久久精品... | 热99re久久精品国产首页| 免费一级毛片在线观看| 女教师二十三歳| 青柠在线观看免费播放电影| 日本无码专区亚洲麻豆| 少妇高潮惨叫久久久久久欧美| 丝袜美女被啪啪不带套漫画| 午夜小视频免费观看| 亚洲视频在线免费| 中文字幕A片视频一区二区| 91麻豆久久| 超碰免费视频公开97| 国产成人a v在线影院| 国产午夜精品久久理论片小说| 黄色大片aa| 毛片视频大全| 日本一二三区在线视频| 无码任你躁久久久久久老妇双奶| 亚洲乱码日产精品BD在线下载| 在线视频免费国产成人| 阿v天堂2017在无码| 国产国拍精品AV在线观看|