定义
动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。
动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。 在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最 优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。
典型案例实现逻辑 案例1,LeetCode 62、不同路径LeetCode 62、不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
输入:m = 3, n = 7
输出:28
题解代码
var uniquePaths = function(m, n) {
var grid = Array.from({length: m}, function (){
return Array(n).fill(0)
})
for(var i = 0; i 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右
题解代码
var uniquePathsWithObstacles = function(obstacleGrid) {
var n = obstacleGrid.length;
var m = obstacleGrid[0].length;
var result = Array(m).fill(0);
result[0] = 1;
for(var i = 0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?