您当前的位置: 首页 >  动态规划

【03】

暂无认证

  • 4浏览

    0关注

    196博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

动态规划算法,js实现,图解执行原理

【03】 发布时间:2021-02-05 09:24:32 ,浏览量:4

定义

动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。

动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。 在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最 优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。

典型案例实现逻辑 案例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             
关注
打赏
1657344724
查看更多评论
0.0457s