本文主要是介绍LeetCode题解:62. 不同路径,动态规划(空间O(n)),JavaScript,详细注释,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接:https://leetcode-cn.com/problems/unique-paths/
解题思路:
- 在网格中的任意一点,都有向右和向下两种走法。同时它也是从上方和左方两个位置走过来的。
- 那么,任意一点的走法数量,等于从起点走到上方和左方点的数量之和。
- 因此,只需要用长度为n的数组递推即可。
- 动态规划的状态转移方程为:
dp[j]=dp[j-1]+dp[j]
。 - 起点只有一种走法,因此起始位置为1。
/*** @param {number} m* @param {number} n* @return {number}*/
var uniquePaths = function(m, n) {// 存储递推结果let dp = new Array(n).fill(0)// 起点的路径数量为1dp[0] = 1// 计算网格中每个点的路径数量for (let i = 0; i < m; i++) {for (let j = 0; j < n; j++) {// 当前位置的路径数量,为它的左方和上方的路径数量之和// j为0时,dp[j - 1]不存在,将其当做0即可dp[j] += dp[j - 1] ?? 0}}//终点的路径数量就是最终结果return dp[n - 1]
};
这篇关于LeetCode题解:62. 不同路径,动态规划(空间O(n)),JavaScript,详细注释的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!