Simple DP approach in c++


#1

int n=A.size();
int m=A[0].size();
vector<vector>dp(n,vector(m));
for(int i=0;i<n;i++){
if(A[i][0]==0){dp[i][0]=1;}
else while(i<n){ dp[i][0]=0;i++;}
}
for(int i=0;i<m;i++){
if(A[0][i]==0){dp[0][i]=1;}
else while(i<m){dp[0][i]=0;i++;}
}
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
if(A[i][j]==1) dp[i][j]=0;
else
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[n-1][m-1];
}