销型网站建设必须的步骤包括中国前500强企业排名
销型网站建设必须的步骤包括,中国前500强企业排名,wordpress还原数据库,最近的重要新闻[动态规划] (五) 路径问题: LeetCode 62.不同路径 文章目录 [动态规划] (五) 路径问题: LeetCode 62.不同路径题目解析解题思路状态表示状态转移方程初始化和填表返回值 代码实现总结 62. 不同路径 题目解析
(1) 机器人从左上角到右下角有多少方法
(2) 机器人只能向左或者向右…[动态规划] (五) 路径问题: LeetCode 62.不同路径 文章目录 [动态规划] (五) 路径问题: LeetCode 62.不同路径题目解析解题思路状态表示状态转移方程初始化和填表返回值 代码实现总结 62. 不同路径 题目解析
(1) 机器人从左上角到右下角有多少方法
(2) 机器人只能向左或者向右移动
(3) 求总共有多少种走路的方法 解题思路
状态表示
从题目经验
我们暂时设dp[i] [j]以(i, j)为终点所到达i使用的方法的数量
状态转移方程
从题目解析中可以看出dp(i, j)的值取决于dp(i-1, j)和dp(i, j-1)的值因为机器人只能向右或者向下走。
且我们猜测的状态表达式正好是到达以(i, j)为终点的方法。
dp[i][j] dp[i-1][j] dp[i][j-1]初始化和填表
初始化
我们在初始化时发现第一排和第一列都是相同的特殊情况需要处理。
这很麻烦所以我们多开辟一列和一排。 每一个格子都取决于前一个与上一个相加。
所以我们只需要初始化dp[0] [1] 或者 dp[1] [0] 为1即可。
填表
先填第一列然后第二列然后…
返回值
我们扩大了一列和一排所以返回dp[m] [n]
看到这里大家可以先去尝试实现代码再来看下面的内容 代码实现
class Solution {
public:int uniquePaths(int m, int n) {//创建dp数组vectorvectorint dp(m1, vectorint(n1));//初始化dp[1][0] 1;//填表for(int i 1; i m; i){for(int j 1; j n; j){dp[i][j] dp[i-1][j] dp[i][j-1];}}//返回值return dp[m][n];}
};总结
细节1初始化只需要扩大一列和一排就可以初始化的很方便
细节2下标需要移位。(i-1 , j-1) (i , j)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88802.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!