往期回顾
动态规划所要满足的条件:
- 大问题拆分成小问题
- 小问题会不会被重复调用
从集合的角度来考虑DP问题,用某一个数来代表一类数

线性DP:
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
size = len(nums)
if size == 0: return -2147483648
f = [nums[0], ]
for i in range(1, size):
f.append(max(f[i-1], 0) + nums[i])
return max(f)
[2]. 快乐的LeetCode — 120. 三角形最小路径和

[3]. 多味的LeetCode — 62. 不同路径
多口味LeetCode — 63. 不同路径 II

区间DP问题
[6]. 多味的LeetCode — 300. 最长上升子序列
[8]. 快乐的LeetCode — 面试题42. 连续子数组的最大和
[9]. 快乐的LeetCode — 面试题 08.11. 硬币
[10]. 快乐的LeetCode — 322. 零钱兑换
背包DP问题
本文深入探讨动态规划的核心解题思路与应用,精选LeetCode经典题目,涵盖最大子序和、三角形最小路径和、不同路径等,通过实例解析线性DP与区间DP问题,适合算法初学者与进阶者。




被折叠的 条评论
为什么被折叠?



