每天一题LeetCode【第45天】

T62. Unique Paths【Medium

题目

一个机器人在 m × n 的网格中的左上角(在下面示意图中标记 'Start' 的位置)。

在同一时间点中,机器人只能向下或者向右走。机器人的目标是右下角(用 'Finish' 标记的位置)

问:有多少种不同的路线?

上图是一个 3 × 7 的栅格。有多少种可能的路线呢?

注意: m 和 n 都 <= 100.

思路

这似乎是一题小学的奥数题,核心思想在于不断往下累加,公式:

当前格子的值 = 左边格子的值 + 上边格子的值

而最左一列和最上一行都初始化为 1,因为到那里都只有一种路线,因此下面的格子都有左值和右值。

代码

代码取自 Top Solution,稍作注释

public int uniquePaths(int m, int n) {
        //定义栅格
        Integer[][] map = new Integer[m][n];
        //把第一行都设为1
        for(int i = 0; i<m;i++){
            map[i][0] = 1;
        }
         //把第一列都设为1
        for(int j= 0;j<n;j++){
            map[0][j]=1;
        }
        //下一格可能的路径 = 左边 + 上面
        for(int i = 1;i<m;i++){
            for(int j = 1;j<n;j++){
                map[i][j] = map[i-1][j]+map[i][j-1];
            }
        }
        //返回
        return map[m-1][n-1];
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,358评论 0 33
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,729评论 25 709
  • 我忽然看见, 阎王的毛笔抓在手里。 那浓黑的墨汁, 即将迅速淹没我的生命。 心房的天目, 收到天堂的信号: 富贵,...
    东者西迷阅读 1,562评论 0 1
  • 2017.08.05周六 雷阵雨 晚上吃过晚饭,儿子又钻进了书房,长时间没有动静。我和他妈妈这几天发现,儿...
    戴骁勇阅读 2,833评论 0 0

友情链接更多精彩内容