动态规划力扣62.不同路径

此题可以用动态规划来进行解题,动规五部曲(dp含义、递推公式、初始化、遍历顺序、打印数组)

理解题目及思路:此题注意要求的是路径而不是步数,我们dp[i][j]的含义就是到达每个格子的总共不同路径,我们分析一下图并得出规律,因为只能向下和向右走,所以可以看出(i,j)这个格子的不同路径关乎到的是上面的格子和左边的格子,求坐标(i,j)的总共不同路径dp[i][j]则是dp[i-1][j] + dp[i][j-1]。


dp含义:每个格子的不同路径总和

递推公式:dp[i][j] = dp[i-1][j] + dp[i][j-1]

初始化:为了防止越界,我们开始的坐标即为(1,1),第一行和第一列的路径是1,所以都初始化为1,其他格子就可以推展得出

遍历顺序:二维数组的从左往右,从上往下

打印数组:当遇到疑惑或者提交错误时,打印数组出来比较快速的看看哪一步有错。

以下是我在力扣c语言提交的代码,仅供参考:
 

int uniquePaths(int m, int n) {
    int dp[110][110];
    for(int i = 1;i<=m;i++) dp[i][1] = 1;
    for(int i = 1;i<=n;i++) dp[1][i] = 1;

    for(int i = 2;i<=m;i++)
    {
        for(int j = 2;j<=n;j++)
        {
            dp[i][j] = dp[i-1][j] + dp[i][j-1];
        }
    }

    return dp[m][n];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值