動態規劃 簡單級 簡單的路徑問題

2021-08-21 08:19:01 字數 1018 閱讀 9152

路徑問題一般場景描述如下:從a到b中間存在(少數沒有)障礙,求總共有多少條路徑?這個問題究竟應該怎麼去尋找狀態、確定路徑呢?

給定乙個數字三角形,找到從頂部到底部的最小路徑和。每一步可以移動到下面一行的相鄰數字上。

比如,給出下列數字三角形:

[

[2],

[3,4],

[6,5,7],

[4,1,8,3]

]

從頂到底部的最小路徑和為11 ( 2 + 3 + 5 + 1 = 11)。

既然思路有了,那接下來就是決定從上向下走還是從下向上走了!我這裡採用的是從下向上走的方式,原因是最後只需要輸出a[0][0]即可。

那麼相應的狀態方程就是: a[i][j] += min(a[i+1][j],a[i+1][j+1]);

所以code也就很簡單了:

class solution 

}return ********[0][0];

}};

給定乙個只含非負整數的m*n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。

思路:這道題目與上面的題目類似,不同的是要求尋找的最短路徑,那就意味著每次尋找的時候都需要記錄下來,然後最後一次的時候比較所有路徑的大小即可(這一步每次迭代都會體現出來,所以最後一步不需要比較了)。

我們用乙個陣列dist記錄第1列開始,

class solution ;

for(int i=0;i

2.3的跟進問題:

現在考慮網格中有障礙物,那樣將會有多少條不同的路徑?

網格中的障礙和空位置分別用 1 和 0 來表示。

如下所示在3x3的網格中有乙個障礙物:

[[0,0,0],

[0,1,0],

[0,0,0]

]

一共有2條不同的路徑從左上角到右下角。

class solution 

};

動態規劃問題簡介 簡單易懂

動態規劃問題其實我理解其實他就是遞迴問題,跟遞迴問題幾乎沒啥兩樣,最能使我理解動態規劃問題的就是網上的動態規劃 下樓梯問題,作者真的很優秀,他的方法感覺很通俗易懂,真的使我受益匪淺,下面我也希望我對動態規劃的講解能幫助到大家 遞迴 1,把問題轉化為規模縮小了的同類問題的子問題 2,有明確的不需要繼續...

動態規劃問題二簡單理解

你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。問題解釋 房屋用非...

動態規劃解決簡單投資問題

1.問題 設 m 元錢,n 項投資,函式 表示將 x 元投入第 i 項專案所產生的效益,i 1,2,n.問 如何分配這 m 元錢,使得投資的總效益最高?如給出上圖關係表。2.解析 fk x 表示 x 萬元投給前 k 個專案的最大效益,k 1,2,n,x 1,2,m 遞推方程 fk x max k 2...