求路径(NC34/考察次数Top56/难度简单)

Posted 码农指南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求路径(NC34/考察次数Top56/难度简单)相关的知识,希望对你有一定的参考价值。

描述:
一个机器人在m×n大小的地图的左上角(起点)。
机器人每次向下或向右移动。机器人要到达地图的右下角(终点)。
可以有多少种不同的路径从起点走到终点?
在这里插入图片描述
备注:m和n小于等于100,并保证计算结果在int范围内

示例1
输入:
2,2
返回值:
2
(题目来自牛客网)

用C++实现如下

class Solution {
public:
    /**
     * 
     * @param m int整型 
     * @param n int整型 
     * @return int整型
     */
    int uniquePaths(int m, int n) {                   //注意,不返回改动的m和n的值,不加应用
        // write code here
        //思路,算出每一格的路径数量,由于是从左上方走向右下方,每一个格子路径数等于左边格子数量加上右边格子数量之和

        int A[m][n];                                  //定义一个m行n列的数组,m和n是行列数,不是下标
        A[0][0]=1;                                    //路径的总数
        int i, j;
        for(j=1;j<n;j++)
            A[0][j]=1;                                //第一行赋值为1,因为路径只有左边过来,都是1;
        for(i=1;i<m;i++)
            A[i][0]=1;                                //第一列赋值为1,因为路径只有上面过来,都是1;
        for(i=1;i<m;i++)                              //将整个格子填满即可(从小到大进行遍历求解),按行来填写
            for(j=1;j<n;j++)
                A[i][j]=A[i][j-1]+A[i-1][j];
        return A[m-1][n-1];                           //此处为右下角格子的路径数量;
    }
};

纯手撕代码,如果觉得内容不错麻烦点个赞,后面陆续配上Top100算法题通俗易懂的讲解视频,可以花两个月时间完全掌握,进大厂不是梦,转行狗亲测!

以上是关于求路径(NC34/考察次数Top56/难度简单)的主要内容,如果未能解决你的问题,请参考以下文章

求平方根(NC32/考察次数Top33/难度简单)

二叉树的最大深度(NC13/考察次数Top42/难度简单)

回文数字(NC56/考察次数Top65/难度简单)

回文数字(NC56/考察次数Top65/难度简单)

二叉树根节点到叶子节点的所有路径和(NC5/考察次数Top53/难度中等)

字符串变形(NC89/考察次数Top68/难度简单)