62. 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。

问总共有多少条不同的路径?
示例 1:

输入: m = 3, n = 2
输出: 3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。

  1. 向右 -> 向右 -> 向下
  2. 向右 -> 向下 -> 向右
  3. 向下 -> 向右 -> 向右
    示例 2:

输入: m = 7, n = 3
输出: 28

提示:

1 <= m, n <= 100
题目数据保证答案小于等于 2 * 10 ^ 9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/unique-paths
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
写题思路:是用的别人的思路写的,大致是按照每一个格子被踩的次数写的,越往后走被踩的次数越多,直至终点所踩的次数就是路径的数量(规律就是该节点的值为节点左边与节点上方数值之和)。

1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35

代码如下:

int uniquePaths(int m, int n){
    int x[100][100],i,j;
    if(n==1)return 1;
    for(i=0;i<m;i++)x[0][i]=1;
    for(i=0;i<n;i++)x[i][0]=1;
    for(i=1;i<n;i++){
        for(j=1;j<m;j++){
            x[i][j]=x[i][j-1]+x[i-1][j];
        }
    }
    return x[i-1][j-1];
}

你可能感兴趣的:(62. 不同路径)