动态规划
文章平均质量分 95
头皮发麻的算法术语
存在morning
乐于了解新技术,善于复盘总结,不是很聪明,但能够持续进步。
展开
-
【算法训练-动态规划 零】动态规划解题框架
动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法,只不过在计算机问题上应用比较多,比如说求最长递增子序列呀,最小编辑距离呀等等。既然是要求最值,核心问题是什么呢?求解动态规划的核心问题是穷举。因为要求最值,肯定要把所有可行的答案穷举出来,然后在其中找最值呗。原创 2023-10-21 11:05:41 · 268 阅读 · 0 评论 -
【算法训练-动态规划 一】【应用DP问题】零钱兑换、爬楼梯、买卖股票的最佳时机I、打家劫舍
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【动态规划】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公司+最近一年+出现频率排序,由高到低的去牛客TOP101去找,只有两个地方都出现过才做这道题(CodeTop本身汇聚了LeetCode的来源),确保刷的题都是高频要面试考的题。明确目标题后,附上题目链接,后期可以依据解题思路反复快速练习,题目按照题干的基本数据结构分类,且每个分类的第一篇必定是对基础数据结构的介绍。通原创 2023-10-21 14:07:28 · 459 阅读 · 0 评论 -
【算法训练-动态规划 二】【线性DP问题】连续子数组的最大和、乘积最大子数组、最长递增子序列
dp[i]表示以nums[i]这个数结尾的最长递增子序列的长度,这个定义中 nums[i] 必须被选取,且必须是这个子序列的最后一个元素;原创 2023-10-24 09:03:18 · 265 阅读 · 0 评论 -
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
对于本题而言,可以定义dp[i][j]表示和的最长公共子序列。表示的是 text1 的 第 0 个元素到第 i - 1 个元素,两端都包含) 之所以dp[i][j]的定义不是text1[0:i]和text[0:j],是为了方便当 i = 0 或者 j = 0 的时候,dp[i][j]表示空字符串和另外一个字符串的匹配,这样dp[i][j]可以初始化为空字符串对于本题而言,可以定义dp[i][j]表示和的最长公共子序列。表示的是 text1 的 第 0 个元素到第 i - 1 个元素,两端都包含) 之所以。原创 2023-09-04 00:56:02 · 743 阅读 · 0 评论 -
【算法训练-动态规划 四】【二维DP问题】最大正方形、最小路径和、不同路径
dp[i ][j ]表示「以第 i 行、第 j 列为右下角的正方形的最大边长」为何不是 dp[i][j],回到图解中,任何一个正方形,我们都「依赖」当前格 左、上、左上三个方格的情况,但第一行的上层已经没有格子,第一列左边已经没有格子,需要做特殊 if 判断来处理,为了代码简洁,我们 假设补充 了多一行全 ‘0’、多一列全 ‘0’原创 2023-10-25 22:53:01 · 404 阅读 · 1 评论