leetcode63 不同路徑2

2021-10-05 03:49:29 字數 649 閱讀 9402

乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。

機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。

現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?

設定乙個與網格同樣大小的dp矩陣,其中dp[i][j]表示有多少種方法能夠走到grid[i][j]位置。不難推出,dp[i][j] = dp[i - 1][j] + dp[i][j - 1](無障礙情況下)。當有障礙物時,dp[i][j]位置顯然是不可達的,因此dp[i][j] = 0

從上到下,從左到右填完dp矩陣後,返回最後乙個元素的值即可。

下面對上述方法進行優化,減少空間複雜度。

已知*dp[i][j] = dp[i - 1][j] + dp[i][j - 1],即當前位置只與上一行的值和本行左邊的值相關,因此可以用乙個一維陣列代替二維陣列。

class

solution

for(

int i =

1; i < row;

++i)

}return res.

back()

;}};

leetcode 63 不同路徑(2)

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?小結 動態規劃。這道題增加了障礙。通用模式 class s...

leetcode 63不同路徑2

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?說明 m 和 n 的值均不超過 100。示例 1 輸入 0...

LeetCode63 不同路徑2

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?一樣的動態規劃,但是多了障礙物,其實只用把障礙物置為0就可...