动态规划专题
文章平均质量分 91
动态规划详解
_Jerry_...
明心见性,Github:https://github.com/jerry609
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划-用集合的角度推导状态转移方程 — 最长上升子序列(LIS)
在动态规划(Dynamic Programming, DP)中,状态转移方程是解决问题的关键。对于**最长上升子序列(Longest Increasing Subsequence, LIS)问题,除了传统的逐步推导 数组的方法外,我们还可以从集合(Set)**的角度来理解和推导状态转移方程。这种方法不仅有助于深入理解问题的本质,还能为进一步优化提供理论支持。目标:给定一个由整数构成的序列 ,找到其中最长的严格递增的子序列,并返回其长度。示例:最长上升子序列长度:4(例如 或 )首先,我们需要重新定义动原创 2024-11-22 20:15:07 · 1161 阅读 · 0 评论 -
动态规划-编辑距离专题
单词拆分使用动态规划数组dp,其中dp[i]表示前i个字符是否可以由字典中的单词构成。如果存在一个单词word属于wordDict,且且,则。i (索引)012ndp[i]T/FT/FT/F。原创 2024-11-22 14:49:42 · 764 阅读 · 0 评论 -
动态规划-代码随想录题单(未完)
斐波那契数列 & 爬楼梯相关斐波那契数爬楼梯使用最小花费爬楼梯爬楼梯(进阶版)路径问题不同路径不同路径 II整数拆分 & 二叉搜索树整数拆分不同的二叉搜索树背包问题0-1 背包相关分割等和子集最后一块石头的重量 II目标和一和零完全背包相关零钱兑换 II组合总和 IV零钱兑换完全平方数多重背包相关多重背包理论基础背包问题总结篇背包问题总结篇字符串处理 & 编辑距离单词拆分判断子序列不同的子原创 2024-11-21 15:05:01 · 310 阅读 · 0 评论 -
动态规划-背包问题(ing)
选择第1组的物品2(重量3,价值5)和第2组的物品2(重量1,价值2),总重量。目标是选择一组物品,使得在不超过背包容量的前提下,(数量不限),目标是选择物品的数量,使得在不超过背包容量的前提下,:从每组中选择最多一件物品,使得总价值最大,且总重量不超过5。:选择哪些物品放入背包,使得总价值最大,且总重量不超过5。件,目标是选择物品的数量,使得在不超过背包容量的前提下,:选择每种物品的数量,使得总价值最大,且总重量不超过10。:选择物品的数量,使得总价值最大,且总重量不超过7。背包(即每种物品只能取。原创 2024-11-20 10:00:28 · 676 阅读 · 0 评论 -
闫氏DP分析法应用
我们首先需要定义一个表示状态的集合。原创 2024-11-19 22:43:52 · 759 阅读 · 0 评论 -
动态规划-整数拆分(集合角度推导)
整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。对于一个整数 ( n ),将其拆分的所有方式记为集合 ( S(n) ):S(n)={(a1,a2,…,ak)∣a1+a2+⋯+ak=n, ai>0,原创 2024-11-19 22:22:59 · 1636 阅读 · 0 评论 -
动态规划-题目汇总
项,而由于斐波那契数列的递推关系非常简单,所以可以使用一维动态规划数组来保存递推的结果。数组,而可以使用两个变量来存储前两项的值,从而将空间复杂度优化为 O(1)。这道题目是典型的动态规划题目,要求我们计算斐波那契数列的第。也就是说,从第 2 项开始,每一项都是前两项的和。因此,遍历的顺序应该是从。可以看出,我们要从前往后填充。确定dp数组以及下标的含义。,所以我们不需要维护整个。根据题目的要求,初始化。原创 2024-11-19 16:09:36 · 464 阅读 · 0 评论 -
动态规划-最长公共子序列
我们不需要显式地处理00这种情况,因为它已经包含在01和10中。当字符不相等时,我们从dp[i-1][j]和dp[i][j-1]中选取最大值,表示我们跳过了某个字符。原创 2024-11-19 15:33:04 · 1190 阅读 · 0 评论 -
动态规划-石子合并
每次可以将相邻的两堆石子合并,合并的代价为这两堆石子的总重量。目标是将所有石子合并成一堆,求使总合并代价最小的方案。虽然动态规划主要用于计算最小代价,但我们也可以根据 ( dp ) 数组回溯出最优合并策略。为了快速计算任意区间的石子总重量,我们使用前缀和数组。的计算结果一致,证明该策略是最优的。给定一列石子堆,石子堆的重量数组为。,我们可以选择一个划分点。堆石子合并成一堆的最小代价。与其子问题之间的关系。,将其分为两个子区间。原创 2024-11-17 10:52:09 · 1240 阅读 · 0 评论
分享