
DP
文章平均质量分 58
DP
vir02
学习,不亦乐乎
展开
-
股票最大利润(DP)
在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。买入这只股票,并选择在。原创 2024-10-21 21:50:39 · 473 阅读 · 0 评论 -
目标和(DP)
给你一个非负整数数组 和一个整数 。向数组中的每个整数前添加 或 ,然后串联起所有整数,可以构造一个 表达式 :返回可以通过上述方法构造的、运算结果等于 的不同 表达式 的数目。示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最终目标和为 3 。-1 + 1 + 1 + 1 + 1 = 3+1 - 1 + 1 + 1 + 1 = 3+1 + 1 - 1 + 1 + 1 = 3+1 + 1 + 1 - 1 + 1 = 3+原创 2024-11-11 22:08:29 · 561 阅读 · 0 评论 -
打家劫舍(DP)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。[1,2,3,1]4偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。12偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。原创 2024-11-09 20:35:23 · 322 阅读 · 0 评论 -
零钱兑换(DP)
因为coin>=1,不可能会有这个值,但这可以表示我们还没有找到一个解。如果没有任何一种硬币组合能组成总金额,返回。,说明我们没有找到一个有效的解,因此返回。由于我们要找一个最小值,所以初始化所有。,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。,我们可以选择将当前硬币。(小于coin的不成立),表示最少硬币数的更新。原创 2024-11-11 22:48:46 · 378 阅读 · 0 评论 -
最长等差子序列长度2
动态规划的状态转移:dp[i][d] = dp[j].count(d)?刚刚开始构成一个新等差子序列,长度初始为 2。可以延长这个序列,故将其长度加 1。最长的等差子序列是 [20,15,10,5]。最长的等差子序列是 [4,7,10]。整个数组是公差为 3 的等差数列。:如果存在,说明已经有了长度为。是一种数据结构的组合,其中。) 的值都相同,那么序列。的最长等差子序列长度。原创 2024-10-15 19:03:28 · 284 阅读 · 0 评论 -
最长的回文子序列(DP)
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。,因为每个字符本身就是一个长度为 1 的回文子序列。,找出其中最长的回文子序列,并返回该序列的长度。一个可能的最长回文子序列为 "bbbb"。一个可能的最长回文子序列为 "bb"。就是整个字符串的最长回文子序列长度。中最长的回文子序列的长度为 4。实例:s = "bbbab"的值是 4,这表示字符串。的最长回文子序列的长度。原创 2024-10-20 23:38:37 · 213 阅读 · 0 评论 -
最长等差子序列的长度(DP)
给你一个整数数组arr和一个整数difference,请你找出并返回arr中最长等差子序列的长度,该子序列中相邻元素之间的差等于difference。是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从arr派生出来的序列。4最长的等差子序列是 [1,2,3,4]。1最长的等差子序列是任意单个元素。4最长的等差子序列是 [7,5,3,1]。使用一个哈希表 unordered_map dp 来记录每个元素作为结尾的等差子序列的最长长度。dp[x]表示以x。原创 2024-10-13 22:35:22 · 447 阅读 · 0 评论 -
s 成为回文串的 最少操作次数(DP)
字符串 "zzazz" 已经是回文串了,所以不需要做任何插入操作。插入 5 个字符后字符串变为 "leetcodocteel"。字符串可变为 "mbdadbm" 或者 "mdbabdm"。,每一次操作你都可以在字符串的任意位置插入任意字符。找到一个字符串的最少插入次数,使其变成回文串。「回文串」是正读和反读都相同的字符串。原创 2024-10-21 16:24:28 · 379 阅读 · 0 评论 -
两个字符串的最长 公共子序列(DP)
是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。举例:text1 = "abcde";最长公共子序列是 "ace" ,它的长度为 3。最长公共子序列是 "abc" ,它的长度为 3。,即找到一个新的公共字符,LCS 长度增加 1。两个字符串没有公共子序列,返回 0。的最后一个字符时哪个 LCS 更长。是这两个字符串所共同拥有的子序列。个字符的最长公共子序列的长度。的最长公共子序列长度为 3。,返回这两个字符串的最长。原创 2024-10-19 13:21:44 · 574 阅读 · 0 评论 -
最长数对链的长度
贪心算法通常通过选择局部最优解来达到全局最优解,在这如果选择左端点的排序可能会导致后续选择的数对受限,从而无法形成最长链。如果我们选择了右端点较大的数对,可能会限制接下来可以选择的数对。例如,如果选择了一个右端点为较大的数对,后面的一些数对就可能无法与其连接,从而导致未能形成更长的链。,排序时按照右端点(即数对的第二个元素)进行排序,可以确保我们首先选择那些结束较早的数对。这意味着我们可以更快地“释放”当前数对的右端点,从而有更多的空间选择后续的数对。的第二个元素(即数对的右端点)。的左端点,说明可以将。原创 2024-10-13 21:32:53 · 333 阅读 · 0 评论 -
最长递增子序列的个数(dp)
给定一个未排序的整数数组nums返回最长递增子序列的个数。这个数列必须是递增的。2有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。5最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。原创 2024-10-13 14:40:24 · 692 阅读 · 0 评论