LeetCode 63. Unique Paths II
class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { if(obstacleGrid.size()==0){ return 0; } int n=obstacleGrid.size(); int m=obstacleGrid[0].size(); int dp[n+1][m+1]; memset(dp,0,sizeof(dp)); dp[0][0]=dp[0][1]=1; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(obstacleGrid[i-1][j-1]!=1){ dp[i][j]=dp[i-1][j]+dp[i][j-1]; } else { dp[i][j]=0; } } } return dp[n][m]; } };