动态规划
今天要来电代码吗
What does not kill me, makes me stronger.
展开
-
LeetCode 5.最长回文子串 (动态规划、中心扩散)
LeetCode 5.最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成来源:力扣(LeetCode)链接:h原创 2021-03-01 21:35:53 · 116 阅读 · 0 评论 -
LeetCode 152.乘积最大子数组 C++
LeetCode 152.乘积最大子数组给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-p原创 2020-12-28 22:30:32 · 218 阅读 · 0 评论 -
LeetCode 730.统计不同回文子序列 C++
LeetCode 730.统计不同回文子序列给定一个字符串 S,找出 S 中不同的非空回文子序列个数,并返回该数字与 10^9 + 7 的模。通过从 S 中删除 0 个或多个字符来获得子序列。如果一个字符序列与它反转后的字符序列一致,那么它是回文字符序列。如果对于某个 i,A_i != B_i,那么 A_1, A_2, … 和 B_1, B_2, … 这两个字符序列是不同的。示例 1:输入:S = ‘bccb’输出:6解释:6 个不同的非空回文子字符序列分别为:‘b’, ‘c’, ‘原创 2020-12-27 21:46:33 · 301 阅读 · 0 评论 -
LeetCode 516.最长回文子序列 C++
LeetCode 516.最长回文子序列给定一个字符串 s ,找到其中最长的回文子序列,并返回该序列的长度。可以假设 s 的最大长度为 1000 。示例 1:输入: “bbbab”输出: 4一个可能的最长回文子序列为 “bbbb”。示例 2:输入: “cbbd”输出: 2一个可能的最长回文子序列为 “bb”。提示:1 <= s.length <= 1000s 只包含小写英文字母来源:力扣(LeetCode)链接:https://leetcode-原创 2020-12-27 21:03:14 · 622 阅读 · 0 评论 -
LeetCode 72.编辑距离
LeetCode 72.编辑距离给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)示例 2:输入:w原创 2020-12-27 20:02:02 · 192 阅读 · 0 评论 -
LeetCode 1143.最长公共子序列
题目描述:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。示例 1:输入:text1 = “abcde”, text2 =原创 2020-12-08 17:45:24 · 118 阅读 · 0 评论 -
LeetCode 53.最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray典型的动态规划,直接上代码了代码如下:class Solution {public: int maxSubArra原创 2020-12-26 16:38:59 · 94 阅读 · 0 评论 -
LeetCode 354.俄罗斯套娃信封问题
给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。示例:输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]输出: 3解释: 最多信封的个数为 3, 组合为: [2,3] => [5,4] => [6,7]。来源原创 2020-12-26 16:11:00 · 141 阅读 · 0 评论 -
LeetCode 714.买卖股票的最佳时机含手续费(动态规划)
LeetCode 714.买卖股票的最佳时机含手续费(动态规划)给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例 1:输入: prices = [1, 3, 2, 8, 4, 9], fee原创 2020-12-17 11:19:48 · 391 阅读 · 0 评论