目录
(二)最长上升子序列(Longest Increasing Subsequence)
(三)最长公共子序列(Longest Common Subsequence)
(四)最大子数组乘积(Maximum Product Subarray)
(六)最长有效括号(Longest Valid Parentheses)
(十)0-1背包问题(0/1 Knapsack Problem)
(十四)单词拆分 III(Palindrome Partitioning III)
(十八)股票买卖问题(Best Time to Buy and Sell Stock)
(十九)最佳买卖股票时机含冷冻期(Best Time to Buy and Sell Stock with Cooldown)
(二十一)从起点到终点的最小路径数(Unique Paths)
干货分享,感谢您的阅读!
一、动态规划总结
(一)基本理解
动态规划(Dynamic Programming)是一种解决多阶段决策问题的优化方法。它通常用于优化具有重叠子问题结构的问题,并通过存储子问题的解来避免重复计算,从而显著提高算法的效率。
动态规划的核心思想是将原问题分解为若干个子问题,通过解决子问题并存储子问题的解来构建原问题的解。在这个过程中,动态规划利用了子问题的重叠性质,即多个子问题可能共享相同的子问题解。通过存储子问题的解,我们可以避免重复计算,从而减少算法的时间复杂度。
下面是对动态规划思想的总结分析ÿ