1. 程式人生 > >【leetcode】63. (Medium)Unique Pathes II

【leetcode】63. (Medium)Unique Pathes II

解題思路:
和Unique Path差不多


提交程式碼:

class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
    	int m=obstacleGrid.length;int n=obstacleGrid[0].length;
    	int[][] dp=new int[m][n];
    	
    	// initialize the bottom row
    	for(int i=n-1;i>=0;i--) {
    		if(obstacleGrid[
m-1][i]==1) { for(int j=i;j>=0;j--) dp[m-1][j]=-1; break; } dp[m-1][i]=1; } // initialize the right column for(int i=m-1;i>=0;i--) { if(obstacleGrid[i][n-1]==1) { for(int j=i;j>=0;j--) dp[j][n-1]=-1; break; } dp[
i][n-1]=1; } for(int i=m-2;i>=0;i--) { for(int j=n-2;j>=0;j--) { if(obstacleGrid[i][j]==1) { dp[i][j]=-1; continue; } dp[i][j]=0; if(dp[i+1][j]!=-1) dp[i][j]+=dp[i+1][j]; if(dp[i][j+1]!=-1) dp[i][j]+=dp[i][j+1]; }
} return dp[0][0]>0?dp[0][0]:0; } }

執行結果:

在這裡插入圖片描述