1.首先定义一个dp数组,dp[i][j] 表示从(0,0)到(i-1,j-1)的最短不同路径个数;
2 dp数组初始化:分别用两个for循环对dp[i][0],dp[0][j] 初始化;
3 更新,如果obstacleGrid[i][j] 是1 ,不做变化,否则有如下更新:
dp[i][j] = dp[i][j-1]+dp[i-1][j];
4 返回 dp[m-1][n-1] 即可
class Solution {
public:
int uniquePathsWithObstacles(vector>& obstacleGrid) {
int m=obstacleGrid.size();
int n = obstacleGrid[0].size();
vector> dp(m,vector(n,0));
for(int i=0;i



