不同路径和(II)
题目:还是求左上到右下的不同路径,只是里面有陷阱不能走
思路:dp[i][j]还是代表到当前格子的路径和,但是如果map[i][j]有陷阱,dp[i][j]就为0
public int uniquePathsWithObstacles(int[][] obstacleGrid) { int m = obstacleGrid.length; int n = obstacleGrid[0].length; int[][] dp = new int[m][n]; dp[0][0]=1^obstacleGrid[0][0]; for(int i=1;i<m;i++){ dp[i][0]=obstacleGrid[i][0]==1?0:dp[i-1][0]; } for(int i=1;i<n;i++){ dp[0][i]=obstacleGrid[0][i]==1?0:dp[0][i-1]; } for(int i=1;i<m;i++){ for(int j=1;j<n;j++){ dp[i][j]=obstacleGrid[i][j]==1?0:dp[i-1][j]+dp[i][j-1]; } } return dp[m-1][n-1]; }