不同的路径 II
不同的路徑 II
"不同的路徑" 的跟進問題:
現在考慮網格中有障礙物,那樣將會有多少條不同的路徑?
網格中的障礙和空位置分別用 1 和 0 來表示。
樣例如下所示在3x3的網格中有一個障礙物:
[[0,0,0],[0,1,0],[0,0,0] ]一共有2條不同的路徑從左上角到右下角。
注意m 和 n 均不超過100
?
只要在上一題的基礎上檢查一下對應位置是否有障礙物,若有障礙物則相應位置的路徑數應為0.
注意第一行是若出現一個障礙物則這個位置和其右側的所有位置的路徑數都為0
1 public class Solution { 2 /** 3 * @param obstacleGrid: A list of lists of integers 4 * @return: An integer 5 */ 6 public int uniquePathsWithObstacles(int[][] obstacleGrid) { 7 // write your code here 8 int m = obstacleGrid.length; 9 int n = obstacleGrid[0].length; 10 11 int dp[] = new int[n]; 12 int i; 13 for(i=0;i<n;i++) { 14 if(obstacleGrid[0][i]!=0)break; 15 dp[i] = 1; 16 } 17 for(i=i;i<n;i++) { 18 dp[i] = 0; 19 } 20 21 for(int l=1;l<m;l++) { 22 if(obstacleGrid[l][0]!=0)dp[0]=0; 23 for(int j=1;j<n;j++) { 24 if(obstacleGrid[l][j]==0)dp[j] += dp[j-1]; 25 else dp[j] = 0; 26 } 27 } 28 return dp[n-1]; 29 } 30 } View Code?
轉載于:https://www.cnblogs.com/FJH1994/p/5019257.html
總結
- 上一篇: 《第一行代码》学习笔记18-广播接收器B
- 下一篇: iOS WKWebView ios9以上