随笔分类 - 动态规划
摘要:目录 题目 思路和解题方法 c++ 代码 Java 版本(仅供参考) Python 版本(仅供参考) 代码细节: C++ 代码细节解释: Python 代码细节解释: lenyan算法笔记 · 语雀 《lenyan算法笔记》 个人笔记日常更新。含金量不高。/(ㄒoㄒ)/~~ 题目 思路和解题方法 首
阅读全文
摘要:题目 LCR 100. 三角形最小路径和 中等 相关标签 数组 动态规划 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当
阅读全文
摘要:题目 42. 接雨水 困难 相关标签 栈 数组 双指针 动态规划 单调栈 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1
阅读全文
摘要:题目 516. 最长回文子序列 中等 相关标签 字符串 动态规划 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入:s = "bbbab" 输出:4 解释:一个可能的最长回
阅读全文
摘要:题目 647. 回文子串 中等 相关标签 字符串 动态规划 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的
阅读全文
摘要:题目 72. 编辑距离 中等 相关标签 字符串 动态规划 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 示例 1: 输入:word1 = "horse", wor
阅读全文
摘要:题目 583. 两个字符串的删除操作 中等 相关标签 字符串 动态规划 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 示例 1: 输入: word1 = "sea", word2 = "eat" 输
阅读全文
摘要:题目 115. 不同的子序列 困难 相关标签 字符串 动态规划 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 + 7 取模。 示例 1: 输入:s = "rabbbit", t = "rabbit"输出:3解释: 如下所示, 有 3 种可以从 s
阅读全文
摘要:题目 392. 判断子序列 简单 相关标签 双指针 字符串 动态规划 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。 进
阅读全文
摘要:题目 1035. 不相交的线 中等 相关标签 数组 动态规划 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i] == nums2[j]且绘制的直线
阅读全文
摘要:题目 53. 最大子数组和 中等 相关标签 数组 分治 动态规划 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解
阅读全文
摘要:题目 1143. 最长公共子序列 中等 相关标签 字符串 动态规划 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(
阅读全文
摘要:题目 718. 最长重复子数组 中等 相关标签 数组 二分查找 动态规划 滑动窗口 哈希函数 滚动哈希 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1: 输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,
阅读全文
摘要:题目 674. 最长连续递增序列 简单 相关标签 数组 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列
阅读全文
摘要:题目 300. 最长递增子序列 中等 相关标签 数组 二分查找 动态规划 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。
阅读全文
摘要:题目 714. 买卖股票的最佳时机含手续费 中等 相关标签 贪心 数组 动态规划 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前
阅读全文
摘要:题目 309. 买卖股票的最佳时机含冷冻期 中等 相关标签 数组 动态规划 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 卖出股票后,你无法在第二天买入股
阅读全文
摘要:题目 188. 买卖股票的最佳时机 IV 困难 相关标签 数组 动态规划 给你一个整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说,你最多可以买 k 次,卖 k 次。
阅读全文
摘要:题目 123. 买卖股票的最佳时机 III 困难 相关标签 数组 动态规划 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输
阅读全文
摘要:题目 (以前有我贪心解法) 贪心解法 股票问题2https://blog.csdn.net/jgk666666/article/details/133977668 122. 买卖股票的最佳时机 II 中等 相关标签 贪心 数组 动态规划 给你一个整数数组 prices ,其中 prices[i] 表
阅读全文