Leetcode 63 不同路徑 II

2021-08-30 11:41:29 字數 1011 閱讀 3611

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

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

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

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

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

示例 1:

輸入:[

[0,0,0],

[0,1,0],

[0,0,0]

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

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

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

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

解題思路:

還是標籤法,設定data[y][x]陣列記錄(x,y)位置到終點的路勁數,初始值有牆的地方0,無牆的地方為1。從最後一列起開始往前遍歷,每一列都是從下往上走,data[n][m]=1,當然如果data[n][m]有牆就直接返回0。遞推式:

data[y][x]=data[y-1][x]+data[y][x-1];(注意陣列溢位)。

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 來表示。說...