leetcode 62. Unique Paths

来源:互联网 发布:schema.org 知乎 编辑:程序博客网 时间:2024/06/08 00:40

这里写图片描述

 这是一道可以使用动态规划求解的题。题目要求是,机器人每次只能选择向右或者向下移动一格,计算出从表格左上角到表格右下角唯一路径的数量。这道题有种直接计算的解法,就是利用排列组合。由于移动方向有所限制,所有路径的步数一定是m+n-2,而其中有m-1次向下,n-1次向右,相关组合的数量就是答案了。为了练习动态规划,我还是不用这种方法吧。

 由观察分析,我们可以知道,从起点到任意一格的路径数量=起点到该点正上方的路径数量+起点到该点左边一格的路径数量。我们只需要从起点开始,保存中间计算出的路径数量,进行递推过程直到终点,即可将答案求出。

 代码实现如下:

class Solution {public:    int uniquePaths(int m, int n) {        //  建立一个矩阵用于存储中间数据(可优化)        int matrix[m][n];        for (int i = 0; i < m; i++) {            for (int j = 0; j < n; j++) {                //  主要是第一行和第一列的路径一定是唯一的                matrix[i][j] = 1;            }        }        //  求除第一行和第一列之外的格子的路径数量        for (int i = 1; i < m; i++) {            for (int j = 1; j < n; j++) {                //  上一格和左一格的路径数量相加得到当前点的路径数量                matrix[i][j] = matrix[i - 1][j] + matrix[i][j - 1];            }        }        //  返回起点到终点的路径数量        return matrix[m - 1][n - 1];    }};
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高铁改签手续费 机票改签费用 高铁改签要手续费吗 车票改签时间限制 飞机改签要手续费吗 汽车票可以改签吗 改签后可以退票吗 机票改签手续费 火车改签时间规定 飞机改签手续费 机票改签要手续费吗 高铁改签规则 飞机改签和退票哪个划算 动车改签规定 飞机票改签要钱吗 飞机票可以改签吗 飞机票改签和退票哪个划算 改签是什么意思 改签后退票手续费新规定 铁路改签新规定 车票改签要手续费吗 改签可以改几次 车票改签规定 火车误点能改签吗 汽车票改签规定 改签可以改目的地吗 动车可以改签吗 改签车票的规定 改签要取票吗 改签时间限制 动车改签要手续费吗 改签能改几次 改签需要取票吗 火车改签是什么意思 飞机票怎么改签 飞机票改签扣多少钱 飞机票如何改签 飞机改签电话 改签机票扣多少手续费 飞机票能改签吗 车票能改签几次