0
点赞
收藏
分享

微信扫一扫

576. 出界的路径数


 

class Solution {
int MOD=(int)1e9+7;
Long memo[][][];
public int findPaths(int m, int n, int maxMove, int startRow, int startColumn) {
/**
记忆化dfs
*/
memo=new Long[m][n][maxMove+1];
return (int)dfs(m,n,maxMove,startRow,startColumn);

}

public long dfs(int m, int n, int maxMove, int i, int j){
if(i<0||j<0||i>=m||j>=n){
return 1;
}
if(maxMove==0){
return 0;
}
if(memo[i][j][maxMove]!=null){
return memo[i][j][maxMove];
}
long res=0;
res=(res+dfs(m,n,maxMove-1,i-1,j))%MOD;
res=(res+dfs(m,n,maxMove-1,i+1,j))%MOD;
res=(res+dfs(m,n,maxMove-1,i,j-1))%MOD;
res=(res+dfs(m,n,maxMove-1,i,j+1))%MOD;
memo[i][j][maxMove]=res;
return res;
}
}

 

举报

相关推荐

0 条评论