2026-02-26:锯齿形数组的总数Ⅰ。用go语言,给定三个整数 n、l、r,要求构造长度为 n 的数组,元素取自区间 [l, r],并满足以下两条规则:
2026-02-17:最大子数组总值Ⅰ。用go语言,给定一个长度为 n 的整数数组 nums 和一个整数 k。 你需要从 nums 中挑出恰好 k 个非空的连续...
昨天晚上十一点多,我在公司楼下抽烟,我们组那个老张突然拦住我:哥,这道House Robber咋写啊,我脑壳疼。
第二,滑动窗口的left边界更新时,要判断lastIndex >= left,否则left可能会往回移。
状态转移:如果s[i]==s[j],且dp[i+1][j-1]是回文,那么dp[i][j]就是回文。
题目是这样的:给你一堆不同面额的硬币,还有一个总金额,问凑出这个总金额最少需要几枚硬币。
解决这个问题的核心思路是动态规划。我们需要找到最少的操作次数,将整个数组变为相同的值。
2026-02-02:没有公共位的整数最大乘积。用go语言,给定一个整数数组 nums,选出两个不同位置的元素(下标不同),要求这两个数在二进制表示上没有共同为...
本题的难点是对破译数字的情况细分,很容易漏掉,要特别留意。如果对破译的情况细分了解之后,在套用动态规划模板就很容易了。
本题如果不是强调用动态规划,很难想到用动态规划来解决。对于一个整数的拆分,也有技巧:对于一个数,可以拆分为2个数的乘机,也可以拆分成多个数的乘机。
本节针对 5 个经典 NPC 问题,分别讲解定义、实例和可运行代码(注:NPC 问题无多项式解法,代码用暴力或动态规划优化,仅适用于小规模实例)...
区间 DP(Interval Dynamic Programming)是动态规划的一种特殊形式,其状态通常以区间的左右端点来定义,即dp[i][j]表示区间[i...
在开始具体模型之前,我们先统一一个核心认知:所有背包扩展模型,本质都是基础背包的 “规则变种”。
通俗来讲,背包问题的本质是 “有限资源下的最优选择”。想象一个场景:你有一个容量有限的背包,面前有一堆物品,每个物品都有自己的重量(或体积)和价...
在正式讲解之前,我们先明确:为什么 LIS 和 LCS 能被称为 “经典线性 DP”?
在正式学习之前,我们先聊聊为什么很多人觉得动态规划难。其实主要原因有三点:
2026-01-11:三段式数组Ⅱ。用go语言,给定长度为 n 的整数序列 nums,要求选出一个包含至少四个元素的连续区间 [a, b](0 ≤ a < b ...
前言 1400分即为一个分水岭,相关题目需要思维与较强代码能力,我本人也是困在这个分水岭一段时间了,并且相关题解对于新手来说很不友好,可能会用到c++17,甚...
对于动态规划,求解当前目标的状态dpi,则依赖于前期的状态(dpi-1或者dpi-1)。对于目标值amount,则依赖于amount之前的值,因此需要遍历遍历1...
该算法的巧妙之处在于通过二分答案将最大化瓶颈值的问题转化为一系列判定问题,并利用DAG的拓扑序特性,在每次判定时使用动态规划来高效地检查是否存在总成本满足约束的...