坐标型DP
序列型DP
划分型DP
1.坐标型DP
题目:m行n列网格,从左上角(0,0)位置开始走,有些地方是障碍,不可以走,问有多少种方式走到右下角
DP
/*
思路:
1.f[0][0] = 0;
2.if(i==0 || j==0){
f[i][j] = 1;
}
3.如果第(i,j)个格子有障碍,则f[i][j]=0
*/
public int solution(int[][] arr){
int m = arr.length;
if(m == 0){
return -1;
}
int n = arr[0].length;
if(n == 0){
return -1;
}
int[][] f = new int[m][n];
f[0][0]=1;
for(int i =0;i<m;++i){
for(int j = 0;j<n;++j){
//当给定数组的元素值是1时,表明当前格子是障碍格子
if(arr[i][j] == 1){
f[i][j] = 0;
}else{
if(i == 0 || j == 0 ){
//边界
f[i][j] = 1;
}else{
f[i