美文网首页快乐写代码
T576、出界的路径数

T576、出界的路径数

作者: 上行彩虹人 | 来源:发表于2020-05-19 19:26 被阅读0次

给定一个 m × n 的网格和一个球。球的起始坐标为 (i,j) ,你可以将球移到相邻的单元格内,或者往上、下、左、右四个方向上移动使球穿过网格边界。但是,你最多可以移动 N 次。找出可以将球移出边界的路径数量。答案可能非常大,返回 结果 mod 109 + 7 的值。
示例 1:
输入: m = 2, n = 2, N = 2, i = 0, j = 0
输出: 6
解释:
示例 2:
输入: m = 1, n = 3, N = 3, i = 0, j = 1
输出: 12
解释:
说明:
球一旦出界,就不能再被移动回网格内。
网格的长度和高度在 [1,50] 的范围内。
N 在 [0,50] 的范围内。

 int[][][] dp;
    int mod = (int)Math.pow(10,9) + 7;
    public int findPaths(int m, int n, int N, int i, int j) {
        dp = new int[m][n][N];
        return dfs(m,n,N,i,j);

    }
    int dfs(int m, int n, int N, int i,int j){
        if( i < 0 || i >= m || j < 0 || j >= n){
            return 1;
        }
        if(N == 0){
            return 0;
        }
        if(dp[i][j][N - 1] > 0){
            return dp[i][j][N - 1] - 1;
        }
        int ret = 0;
        ret = (ret + dfs(m, n, N - 1, i - 1, j)) % mod;
        ret = (ret + dfs(m, n, N - 1, i + 1, j)) % mod;
        ret = (ret + dfs(m, n, N - 1, i, j - 1)) % mod;
        ret = (ret + dfs(m, n, N - 1, i, j + 1)) % mod;
        dp[i][j][N - 1] = ret + 1;
        return ret;
    }

相关文章

  • T576、出界的路径数

    给定一个 m × n 的网格和一个球。球的起始坐标为 (i,j) ,你可以将球移到相邻的单元格内,或者往上、下、左...

  • 576. 出界的路径数--java版

    本题看了15分钟,不会做,上网搜了一篇文章,思路挺清楚的,递归方式可理解 参考: https://www.jian...

  • 出界的路径数----迭代问题与计算思维

    目录 topic 问题分析*不可行思路*可行思路 解决方案 代码与测试结果 优化&反思&扩展 最后 Topic -...

  • 【GitHub建站】Hexo+GitHub建站教程

    一、安装Git 1、默认安装即可,可指定路径。 2、Ctrl+R,运行cmd,在弹出界面中输入:git,检测版本。...

  • 62. Unique Paths

    每个位置的路径数为上面一格路径数加上左边一格的路径 数。注意初始化,以及三目运算符的使用。

  • 出界

  • 出界

    作者:奕璇 第1章 感情出了界,你的爱还在不在,友情出了界,我说的你能否还明白?亲情出...

  • 出界

    上海的天空又灰下来了,在这里阳光总是那么的奢侈。容不得连续给我的温暖。 我是个怕冷的人。内心却一片热情。 无处安放...

  • 出界

    与女儿打羽毛球,昨天分数落后时,她说拍子不好,还耍脾气,扔拍子……今天拿了一个稍微好一点的拍子……女儿却...

  • 出界

    2000年7月,小语从漠河第一次坐火车一路辗转来到深圳。下了火车被正午的阳光刺痛了眼,手挡在额头上,另外一只手拎着...

网友评论

    本文标题:T576、出界的路径数

    本文链接:https://www.haomeiwen.com/subject/mgkiohtx.html