美文网首页动态规划
算法:动态规划(DP)

算法:动态规划(DP)

作者: keloli | 来源:发表于2017-09-02 22:09 被阅读91次

入门

在知乎上看到徐凯强 Andy的答案后感觉入门了

实践

题目:仅包含0/1的矩阵,求其中最大的全1方阵(不能是矩形)的边长

题解:matrxi[100][100]表示0/1矩阵,dp[i][j]表示:以matrix[i][j]为右下角,边长最大为min(i,j)的,最大全1方阵的边长
if(matrix[i][j]==0)
{
dp[i][j]=0;
}
if(matrix[i][j]==1)
{
if(dp[i-1][j]==1&&dp[i][j-1]==1)
{
dp[i][j]=dp[i-1][j-1]+1;
}
else
{
dp[i][j]=1;
}
}
最后dp数组中最大的值即所求的边长

题目:https://leetcode.com/problems/trapping-rain-water/description/
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.
For example,
Given [0,1,0,2,1,0,1,3,2,1,2,1], return 6.

题解:https://leetcode.com/problems/trapping-rain-water/solution/
核心思想:维护一个区间,当区间缩小时看看是否有一边下降,如果下降则盛雨量增加,否则向内移动短边。

 // https://leetcode.com/problems/trapping-rain-water/solution/
 // Approach #4 Using 2 pointers [Accepted]
 int trap(vector<int>& height)
{
    int left = 0, right = height.size() - 1;
    int ans = 0;
    int left_max = 0, right_max = 0;
    while (left < right) {
        if (height[left] < height[right]) {
            height[left] >= left_max ? (left_max = height[left]) : ans += (left_max - height[left]);
            ++left;
        }
        else {
            height[right] >= right_max ? (right_max = height[right]) : ans += (right_max - height[right]);
            --right;
        }
    }
    return ans;
}

相关文章

  • 动态规划-js

    动态规划 参考:算法分析与设计-贪心&动归 漫画:什么是动态规划? 【数据结构与算法】 DP 动态规划 介绍 介绍...

  • 动态规划算法

    动态规划(Dynamic Programming,DP)是算法设计思想中最难也是最有趣的部分。掌握动态规划算法,对...

  • floyd算法解析

    floyd算法可求得多源点间的最短路径算法使用动态规划求解: 状态转移方程 dp[i][j][k]=min(dp[...

  • 算法:动态规划(DP)

    入门 在知乎上看到徐凯强 Andy的答案后感觉入门了 实践 题目:仅包含0/1的矩阵,求其中最大的全1方阵(不能是...

  • 动态规划 DP算法

    多阶段决策过程(multistep decision process)是指这样一类特殊的活动过程,过程可以按时间顺...

  • 算法小专栏:动态规划(一)

    级别: ★☆☆☆☆标签:「算法」「DP策略」「动态规划」作者: MrLiuQ审校: QiShare团队 本篇将介绍...

  • 动态规划套路

    动态规划 动态规划(dynamic programming,简称 dp),是一类求解最优值的算法。有一定的套路可以...

  • 一文弄懂动态规划(DP Dynamic Programming)

    动态规划 参考链接 漫画算法,什么是动态规划? DP 动态规划是一种分阶段求解决策问题的数学思想 题目一 问:下楼...

  • 带你入门动态规划算法

    一、导论  动态规划(Dynamic Programming,DP)是算法设计思想中最难也是最有趣的部分。掌握动态...

  • 2022-03-31 不同路径

    动态规划:不同路径:初始状态: dp[i][0]=1 dp[0][[j]=1动态规划方程 dp[i][j]=dp...

网友评论

    本文标题:算法:动态规划(DP)

    本文链接:https://www.haomeiwen.com/subject/qfselxtx.html