LeetCode-063-不同路徑II
一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。
機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。
現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?
網格中的障礙物和空位置分別用 1 和 0 來表示。
示例 1:
輸入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
輸出:2
解釋:
3x3 網格的正中間有一個障礙物。
從左上角到右下角一共有 2 條不同的路徑:
- 向右 -> 向右 -> 向下 -> 向下
- 向下 -> 向下 -> 向右 -> 向右
示例 2:
輸入:obstacleGrid = [[0,1],[0,0]]
輸出:1
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/unique-paths-ii
解題思路
和上一題不同路徑思路基本一致
但是多了障礙判斷
並且為了節省空間, 採用一維滾動陣列來代替二維陣列
dp[j] += dp[j - 1]
相當於將[i - 1][j]
的結果+= [i][j - 1]
然後賦給[i][j]
因為矩陣中每個格子的路徑數只需要看上方或者左方
所以兩層迴圈時, 每次子迴圈時一維陣列中原有的值代表了該位置i, j
的上方i - 1, j
的路徑數
然後再加上一維陣列中元素的前一個元素的路徑, 代表了加上i, j - 1
的路徑
最後返回一維陣列最後一個元素
程式碼
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
if (obstacleGrid[0][0] == 1) {
return 0;
}
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
int[] dp = new int[n];
dp[0] = 1;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (obstacleGrid[i][j] == 1) {
dp[j] = 0;
continue;
}
if (j >= 1) {
// 相當於將[i - 1][j]的結果 += [i][j - 1]然後賦給[i][j]
// 滾動陣列
dp[j] += dp[j - 1];
}
}
}
return dp[n - 1];
}
}
相關文章
- (39/60)不同路徑、不同路徑Ⅱ
- 【Leetcode】62. 不同路徑LeetCode
- LeetCode-62-不同路徑LeetCode
- 39天【程式碼隨想錄演算法訓練營34期】第九章 動態規劃part02(● 62.不同路徑 ● 63. 不同路徑 II )演算法動態規劃
- 資料庫移動路徑一例。相同平臺不同路徑遷移資料庫
- 遷移資料庫的檔案到不同路徑(轉)資料庫
- 兩個相同路徑、不同包、相同名稱類載入
- nginx同一埠配置代理不同路徑下的檔案Nginx
- 【動態規劃】用一維和二維解決不同路徑動態規劃
- 使用RMAN線上建立DataGuard備用庫(資料檔案不同路徑結構)
- LeetCode - 113 - 路徑總和 IILeetCode
- Leetcode——113. 路徑總和 IILeetCode
- LeetCode-113-路徑總和 IILeetCode
- git不同分支push之後通過hook自動部署到伺服器不同路徑GitHook伺服器
- 雲遊戲漸入佳境,眾玩家同行不同路遊戲
- Range Addition II 範圍求和 II
- 杉數科技:不走捷徑的“解”題高手
- Xamarin Visual Studio不識別JDK路徑JDK
- jivejdon安裝部署報錯 類路徑不對?
- Java學習之路:不走彎路,就是捷徑Java
- Java學習之路:不走彎路,就是捷徑(轉)Java
- 黑客字典II黑客
- Reflective Journal II
- (原創) 如何破解Quartus II 7.2 SP1? (IC Design) (Quartus II) (Nios II)iOS
- canvas 實現光線沿不規則路徑運動Canvas
- 學習人工智慧不走捷徑,走大道的方式人工智慧
- jivejdon太坑爹了,原始碼類路徑不對啊!!!。原始碼
- 每日一道演算法題--leetcode 113--路徑總和II--python演算法LeetCodePython
- 讓AI不神祕也不神話 AI落地實踐路徑與2大必填坑AI
- 並行建立索引會不會進行直接路徑讀取?並行索引
- war包釋出找不見路徑--weblogic --------getResource("/")與getRealPath("/")Web
- 【機器學習】梯度下降 II機器學習梯度
- USACO GCD Extreme(II)GCREM
- Meeting Rooms IIOOM
- QML中載入圖片不顯示,路徑出錯問題
- 字串的調整II字串
- Chapter III What Is Truth IIAPT
- 黑客字典 II(限制版)黑客