国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

數(shù)據(jù)結(jié)構(gòu)與算法之動態(tài)規(guī)劃就這些招式!

開發(fā) 前端 算法
動態(tài)規(guī)劃,英文:Dynamic Programming,簡稱DP,如果某一問題有很多重疊子問題,使用動態(tài)規(guī)劃是最有效的。

[[442276]]

動態(tài)規(guī)劃理論基礎(chǔ)

什么是動態(tài)規(guī)劃

動態(tài)規(guī)劃,英文:Dynamic Programming,簡稱DP,如果某一問題有很多重疊子問題,使用動態(tài)規(guī)劃是最有效的。

所以動態(tài)規(guī)劃中每一個狀態(tài)一定是由上一個狀態(tài)推導(dǎo)出來的,這一點就區(qū)分于貪心,貪心沒有狀態(tài)推導(dǎo),而是從局部直接選最優(yōu)的,

在關(guān)于貪心算法,你該了解這些!中我舉了一個背包問題的例子。

例如:有N件物品和一個最多能背重量為W 的背包。第i件物品的重量是weight[i],得到的價值是value[i] 。每件物品只能用一次,求解將哪些物品裝入背包里物品價值總和最大。

動態(tài)規(guī)劃中dp[j]是由dp[j-weight[i]]推導(dǎo)出來的,然后取max(dp[j], dp[j - weight[i]] + value[i])。

但如果是貪心呢,每次拿物品選一個最大的或者最小的就完事了,和上一個狀態(tài)沒有關(guān)系。

所以貪心解決不了動態(tài)規(guī)劃的問題。

其實大家也不用死扣動規(guī)和貪心的理論區(qū)別,后面做做題目自然就知道了。

而且很多講解動態(tài)規(guī)劃的文章都會講最優(yōu)子結(jié)構(gòu)啊和重疊子問題啊這些,這些東西都是教科書的上定義,晦澀難懂而且不實用。

大家知道動規(guī)是由前一個狀態(tài)推導(dǎo)出來的,而貪心是局部直接選最優(yōu)的,對于刷題來說就夠用了。

上述提到的背包問題,后序會詳細講解。

動態(tài)規(guī)劃的解題步驟

做動規(guī)題目的時候,很多同學會陷入一個誤區(qū),就是以為把狀態(tài)轉(zhuǎn)移公式背下來,照葫蘆畫瓢改改,就開始寫代碼,甚至把題目AC之后,都不太清楚dp[i]表示的是什么。

這就是一種朦朧的狀態(tài),然后就把題給過了,遇到稍稍難一點的,可能直接就不會了,然后看題解,然后繼續(xù)照葫蘆畫瓢陷入這種惡性循環(huán)中。

狀態(tài)轉(zhuǎn)移公式(遞推公式)是很重要,但動規(guī)不僅僅只有遞推公式。

對于動態(tài)規(guī)劃問題,我將拆解為如下五步曲,這五步都搞清楚了,才能說把動態(tài)規(guī)劃真的掌握了!

  1. 確定dp數(shù)組(dp table)以及下標的含義
  2. 確定遞推公式
  3. dp數(shù)組如何初始化
  4. 確定遍歷順序
  5. 舉例推導(dǎo)dp數(shù)組

一些同學可能想為什么要先確定遞推公式,然后在考慮初始化呢?

因為一些情況是遞推公式?jīng)Q定了dp數(shù)組要如何初始化!

后面的講解中我都是圍繞著這五點來進行講解。

可能刷過動態(tài)規(guī)劃題目的同學可能都知道遞推公式的重要性,感覺確定了遞推公式這道題目就解出來了。

其實 確定遞推公式 僅僅是解題里的一步而已!

一些同學知道遞推公式,但搞不清楚dp數(shù)組應(yīng)該如何初始化,或者正確的遍歷順序,以至于記下來公式,但寫的程序怎么改都通過不了。

后序的講解的大家就會慢慢感受到這五步的重要性了。

動態(tài)規(guī)劃應(yīng)該如何debug

相信動規(guī)的題目,很大部分同學都是這樣做的。

看一下題解,感覺看懂了,然后照葫蘆畫瓢,如果能正好畫對了,萬事大吉,一旦要是沒通過,就怎么改都通過不了,對 dp數(shù)組的初始化,遞推公式,遍歷順序,處于一種黑盒的理解狀態(tài)。

寫動規(guī)題目,代碼出問題很正常!

找問題的最好方式就是把dp數(shù)組打印出來,看看究竟是不是按照自己思路推導(dǎo)的!

一些同學對于dp的學習是黑盒的狀態(tài),就是不清楚dp數(shù)組的含義,不懂為什么這么初始化,遞推公式背下來了,遍歷順序靠習慣就是這么寫的,然后一鼓作氣寫出代碼,如果代碼能通過萬事大吉,通過不了的話就憑感覺改一改。

這是一個很不好的習慣!

做動規(guī)的題目,寫代碼之前一定要把狀態(tài)轉(zhuǎn)移在dp數(shù)組的上具體情況模擬一遍,心中有數(shù),確定最后推出的是想要的結(jié)果。

然后再寫代碼,如果代碼沒通過就打印dp數(shù)組,看看是不是和自己預(yù)先推導(dǎo)的哪里不一樣。

如果打印出來和自己預(yù)先模擬推導(dǎo)是一樣的,那么就是自己的遞歸公式、初始化或者遍歷順序有問題了。

如果和自己預(yù)先模擬推導(dǎo)的不一樣,那么就是代碼實現(xiàn)細節(jié)有問題。

這樣才是一個完整的思考過程,而不是一旦代碼出問題,就毫無頭緒的東改改西改改,最后過不了,或者說是稀里糊涂的過了。

這也是我為什么在動規(guī)五步曲里強調(diào)推導(dǎo)dp數(shù)組的重要性。

舉個例子哈:在「代碼隨想錄」刷題小分隊微信群里,一些錄友可能代碼通過不了,會把代碼拋到討論群里問:我這里代碼都已經(jīng)和題解一模一樣了,為什么通過不了呢?

發(fā)出這樣的問題之前,其實可以自己先思考這三個問題:

  • 這道題目我舉例推導(dǎo)狀態(tài)轉(zhuǎn)移公式了么?
  • 我打印dp數(shù)組的日志了么?
  • 打印出來了dp數(shù)組和我想的一樣么?

如果這靈魂三問自己都做到了,基本上這道題目也就解決了,或者更清晰的知道自己究竟是哪一點不明白,是狀態(tài)轉(zhuǎn)移不明白,還是實現(xiàn)代碼不知道該怎么寫,還是不理解遍歷dp數(shù)組的順序。

然后在問問題,目的性就很強了,群里的小伙伴也可以快速知道提問者的疑惑了。

注意這里不是說不讓大家問問題哈, 而是說問問題之前要有自己的思考,問題要問到點子上!

大家工作之后就會發(fā)現(xiàn),特別是大廠,問問題是一個專業(yè)活,是的,問問題也要體現(xiàn)出專業(yè)!

如果問同事很不專業(yè)的問題,同事們會懶的回答,領(lǐng)導(dǎo)也會認為你缺乏思考能力,這對職場發(fā)展是很不利的。

所以大家在刷題的時候,就鍛煉自己養(yǎng)成專業(yè)提問的好習慣。

總結(jié)

這一篇是動態(tài)規(guī)劃的整體概述,講解了什么是動態(tài)規(guī)劃,動態(tài)規(guī)劃的解題步驟,以及如何debug。

動態(tài)規(guī)劃是一個很大的領(lǐng)域,今天這一篇講解的內(nèi)容是整個動態(tài)規(guī)劃系列中都會使用到的一些理論基礎(chǔ)。

在后序講解中針對某一具體問題,還會講解其對應(yīng)的理論基礎(chǔ),例如背包問題中的01背包,leetcode上的題目都是01背包的應(yīng)用,而沒有純01背包的問題,那么就需要在把對應(yīng)的理論知識講解一下。

大家會發(fā)現(xiàn),我講解的理論基礎(chǔ)并不是教科書上各種動態(tài)規(guī)劃的定義,錯綜復(fù)雜的公式。

這里理論基礎(chǔ)篇已經(jīng)是非常偏實用的了,每個知識點都是在解題實戰(zhàn)中非常有用的內(nèi)容,大家要重視起來哈。

 

責任編輯:姜華 來源: 代碼隨想錄
相關(guān)推薦

2021-05-13 07:34:56

Java數(shù)據(jù)結(jié)構(gòu)算法

2020-12-31 05:31:01

數(shù)據(jù)結(jié)構(gòu)算法

2022-09-26 07:56:53

AVL算法二叉樹

2022-09-21 07:57:33

二叉搜索樹排序二叉樹

2020-10-30 09:56:59

Trie樹之美

2020-10-21 14:57:04

數(shù)據(jù)結(jié)構(gòu)算法圖形

2023-03-08 08:03:09

數(shù)據(jù)結(jié)構(gòu)算法歸并排序

2020-10-12 11:48:31

算法與數(shù)據(jù)結(jié)構(gòu)

2020-10-20 08:14:08

算法與數(shù)據(jù)結(jié)構(gòu)

2022-01-18 19:13:52

背包問題數(shù)據(jù)結(jié)構(gòu)算法

2023-10-27 07:04:20

2009-08-11 14:51:11

C#數(shù)據(jù)結(jié)構(gòu)與算法

2021-07-16 04:57:45

Go算法結(jié)構(gòu)

2021-12-10 11:27:59

數(shù)據(jù)結(jié)構(gòu)算法單調(diào)遞增的數(shù)字

2021-12-08 11:31:43

數(shù)據(jù)結(jié)構(gòu)算法合并區(qū)間

2009-08-11 14:43:42

C#數(shù)據(jù)結(jié)構(gòu)與算法

2021-12-21 11:39:01

數(shù)據(jù)結(jié)構(gòu)算法同構(gòu)字符串

2023-03-02 08:15:13

2023-03-10 08:07:39

數(shù)據(jù)結(jié)構(gòu)算法計數(shù)排序

2023-03-07 08:02:07

數(shù)據(jù)結(jié)構(gòu)算法數(shù)列
點贊
收藏

51CTO技術(shù)棧公眾號

欧洲一区二区视频| 国产欧美亚洲日本| 26uuu亚洲电影在线观看| 91女人视频在线观看| 久久久久久99| 亚洲成人原创| 99国产视频在线| 欧美国产偷国产精品三区| 欧美中文字幕在线观看| 久久精品国产亚洲5555| 欧美精品情趣视频| 久久久久九九精品影院| 日韩网站免费观看高清| 国产亚洲人成a在线v网站 | 欧美日韩在线观看视频| 国产字幕中文| 亚洲一线二线三线视频| 一级毛片免费看| 亚洲图片欧美视频| 在线色视频网| 免费不卡视频| 欧美淫片网站| 国产精品女主播av| 色8久久人人97超碰香蕉987| 久久97精品久久久久久久不卡| 欧美精品v日韩精品v国产精品| 黄色污污在线观看| 日韩精品三级| 欧美日韩精品免费观看| 不卡精品视频| 欧美成人sm免费视频| 日本一区精品视频| 97视频免费观看| 欧美色图在线播放| 2022国产精品| 亚洲一区二区三区高清| 色视频一区二区三区| 国产精品一区二区果冻传媒| 97在线免费视频观看| av电影在线观看完整版一区二区| 999精品网站| 一区二区三区欧美日韩| 每日更新在线观看av| 欧美一区日韩一区| 人人视频精品| 91精品国产成人www| 婷婷精品进入| 亚洲一区二区三区色| 成人禁用看黄a在线| 污污网站免费观看| 91久久奴性调教| 欧美亚洲日本精品| 久久久久久av| 欧美大人香蕉在线| 欧美在线一二三区| 久久久www免费人成精品| 在线看片免费人成视久网| 日韩片之四级片| 欧美一级大片在线视频| 国产精品国产精品| 99精品视频一区| 男女视频在线观看| 国产亚洲日本欧美韩国| 日韩一区电影| 超碰97免费观看| 亚洲男人的天堂一区二区| 日本电影在线观看网站| 中文字幕综合在线| 91精品国产乱码久久久久久| 综合久久国产| 亚洲永久精品大片| 午夜小视频福利在线观看| 欧美激情视频网站| 亚洲国产专区| 精品久久久久久中文字幕2017| 欧美视频精品在线| 欧美视频三区| 亚洲国产成人不卡| 亚洲激情在线播放| 国产h片在线观看| 国产精品成人品| 国产一区二区免费视频| 在线久久视频| 亚洲欧洲xxxx| 日韩午夜在线| 超碰在线97免费| 精品福利一区二区三区免费视频| 天美av一区二区三区久久| 亚洲国产一区二区在线| 亚洲一区在线观看视频| 色8久久久久| 亚洲巨乳在线观看| 日本国产一区二区| 亚洲美女久久| 日韩精品视频一区二区在线观看| 中文字幕一区二区三区四区不卡| 国产大学生校花援交在线播放| 亚洲午夜在线电影| 超碰人人在线| 欧美日韩性视频在线| 成人全视频免费观看在线看| 国产一区二区三区色淫影院| 国产精品电影一区二区| 男人久久天堂| 欧美日韩一区在线视频| 色综合天天狠狠| 国产一区二区三区四区二区| 欧美韩国日本在线| 亚洲精品第一国产综合精品| 激情久久久久| 色视频网站在线| 日日噜噜噜夜夜爽爽狠狠视频| 国产精品aaaa| 欧美亚洲网站| www.成人69.com| 精品一区二区三区电影| 91精品一区二区三区综合在线爱| 免费羞羞视频| 日韩在线电影一区| 久久亚洲国产精品成人av秋霞| 欧美日本免费| 免费黄色在线| 国产精品无码专区在线观看| 中文字幕一区二区精品区| 无码aⅴ精品一区二区三区浪潮 | 久久亚洲捆绑美女| 国产夫妻在线| 欧美日韩国产一二| 欧美性大战久久久久久久蜜臀| 大伊香蕉精品在线品播放| 欧美在线视频二区| 五月天网站亚洲| 老司机精品视频网| 美女黄毛**国产精品啪啪| 日本久久精品电影| 精品自拍一区| 中国一级大黄大黄大色毛片| 欧美成人免费网| 日韩精品免费看| 日韩美女视频一区二区 | 国模精品一区二区三区| 精品久久久久久中文字幕大豆网| 亚洲理伦在线| 精品视频在线播放一区二区三区| 69久久久久久| 激情视频一区二区| 国产精品美女免费| 国产三级一区二区| 一区二区日韩| 97碰碰碰免费公开在线视频| 91久久国产| 一本一道波多野毛片中文在线| 久久久综合av| 色婷婷综合久色| 国产一区清纯| 成年人在线看| 91在线观看免费| 一区二区三区在线观看动漫| 欧美国产一级| 男人在线资源站| 最新精品视频| 久久久噜噜噜久久久| 亚洲国产人成综合网站| 亚洲自啪免费| 欧美电影在线观看网站| 人与动性xxxxx免费视频| 国产精品一区视频| 国产亚洲精品久久久久久777| 欧美成人影院| 亚洲国产精品免费视频| 欧美日韩亚洲视频一区| 久久久国产一区二区三区四区小说 | 九九热这里只有在线精品视| 青草久久伊人| 在线观看免费黄色片| 成人免费激情视频| 精品国产电影| porn视频在线观看| 久久香蕉视频网站| 欧美一级电影免费在线观看| 欧美伦理视频网站| 99视频精品免费视频| 日韩在线视屏| 免费观看成人性生生活片| 黑人巨大精品欧美一区二区奶水 | 欧美成熟毛茸茸复古| 久久亚洲国产成人| 色婷婷久久综合| 国产麻豆日韩欧美久久| 成人高清电影网站| 亚洲精华液一区二区三区| 麻豆av观看| 在线观看av的网址| 国产日韩av在线播放| 一本色道久久88综合亚洲精品ⅰ | 久久91亚洲人成电影网站| 欧美另类一区二区三区| 中文字幕精品一区二区精品绿巨人| 国产日韩1区| 免费国产自久久久久三四区久久|