leetcode 63 不同路徑 II

2022-05-05 09:45:10 字數 930 閱讀 9751

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

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

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

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

說明:m 和 n 的值均不超過 100。

示例 1:

輸入:

[  [0,0,0],

[0,1,0],

[0,0,0]

]輸出: 2

解釋:3x3 網格的正中間有乙個障礙物。

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

1. 向右 -> 向右 -> 向下 -> 向下

2. 向下 -> 向下 -> 向右 -> 向右

和上一題類似,只是在路徑中新增了障礙物,把有障礙物的位置設定為0,表示沒有路徑可以達到該點, 此外對於第一行和第一列只要出現了障礙物,其後面或者其下面的點均不可到達;

1

class

solution 14}

15for(i=1; i)

16for(j=1; j)

17if(dp[i][j]) dp[i][j] = dp[i][j-1] + dp[i-1

][j];

18return dp[x-1][y-1

];19

}20 };

這種演算法簡潔一些,沒有上面繁雜的判斷語句; 思維很棒! 在起點之前新增乙個點;初始化條件是dp[0][1]或者dp[1][0]都是可行的;與上面不同的是,每乙個點的初始值是0,並且是從第0行第0列開始遍歷的

class

solution

};

LeetCode63 不同路徑

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

LeetCode 63 不同路徑

看到這個題目的時候想到的是通過深度優先搜尋演算法進行求解,找到每一條能夠到達finish的路徑,並計數 1,最後得出的計數值即為解。程式設計後提交對於部分測試用例超時,程式如下 class solution if x 1 n 1 if y 1 m 1 int uniquepathswithobsta...

Leetcode 63 不同路徑

描述 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?網格中的障礙物和空位置分別用 1 和 0 來表示。說...