日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode63 不同路径II

發布時間:2023/12/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode63 不同路径II 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個機器人位于一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。

機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。

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

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

示例?1:

輸入:
[
??[0,0,0],
??[0,1,0],
??[0,0,0]
]
輸出: 2
解釋:
3x3 網格的正中間有一個障礙物。
從左上角到右下角一共有 2 條不同的路徑:
1. 向右 -> 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右

和不同路徑那道題是一樣的,只不過需要加上障礙判斷.?

public int uniquePathsWithObstacles(int[][] obstacleGrid) {int row = obstacleGrid.length;int col = obstacleGrid[0].length;// 考慮終點是否是障礙物if (obstacleGrid[row - 1][col - 1] == 1) {return 0;}// 初始化最后一行和最后一列int[][] memo = new int[row][col];memo[row - 1][col - 1]= 1;for (int i = row - 2;i >= 0; i --) {if (obstacleGrid[i][col - 1] != 1) {memo [i][col - 1] = memo[i + 1][col - 1];}}for (int i = col - 2; i >= 0; i --) {if (obstacleGrid[row - 1][i] != 1) {memo[row - 1][i] = memo[row - 1][i + 1];}}for (int r = row - 2; r >= 0; r --) {for (int c = col -2; c >= 0; c --) {if (obstacleGrid[r][c] != 1) { // 注意障礙物memo[r][c] = memo[r][c + 1] + memo[r + 1][c];}}}return memo[0][0];}

總結

以上是生活随笔為你收集整理的leetcode63 不同路径II的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。