使用動態規劃求解的思路比較簡單,dp[i][j]表示從obstaclegrid[0][0]開始到obstaclegrid[i][j]有多少條不同的路徑。**中前面兩個while是給dp陣列賦初始值。狀態轉移方程如下:
obstaclegrid[i][j] = 1時,dp[i][j] = 1;
obstaclegrid[i][j] = 0時,dp[i][j] = dp[i - 1][j] + dp[i][j - 1];(需要注意邊界問題,下面**,i,j是從2開始遍歷的)
class solution
while(j < m && obstaclegrid[j][0] == 0)
for(j = 1; j < m; j++)
}
return dp[m-1][n-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 來表示。說...