摘要:
下面给出动态规划(DP)中最经典的问题类型与对应的典型状态定义(State Definition)大全,按主题系统归纳,方便学习与复习。每类均附带问题特征、常用状态表示、典型转移。 一、序列型 DP(Sequence DP) 1. 最长上升子序列(LIS) 状态定义: ( dp[i] ):以第 (i 阅读全文
posted @ 2025-11-24 19:00
Nickey103
阅读(8)
评论(0)
推荐(0)
摘要:
下面给出一套体系化、可复用、适用于所有 DP(尤其是复杂 DP)的问题解法框架。 内容分为两部分: 如何确定 dp 数组的定义(状态定义) 如何推导状态转移方程(状态转移) ① 如何确定 DP 数组的定义?(状态定义的三原则) DP 的本质是: 定义一个状态,使其可以准确、唯一描述问题的“子问题”, 阅读全文
posted @ 2025-11-24 18:57
Nickey103
阅读(33)
评论(0)
推荐(0)
摘要:
188. 买卖股票的最佳时机 IV 如何推导状态转移方程? 当前层的每一个状态来自上一层的哪些状态? 若状态转移方程中出现复杂计算,改变dp数组的定义或增加dp数组的维度。 class Solution { public int maxProfit(int k, int[] prices) { if 阅读全文
posted @ 2025-11-24 18:33
Nickey103
阅读(24)
评论(0)
推荐(0)
摘要:
在力扣算法题中,Java对数组的常见操作及其复杂度: 1. 排序操作 Arrays.sort(nums); // 时间复杂度: O(nlogn) Arrays.sort(nums, 1, 4); // 时间复杂度: O(klogk), k为排序范围大小 // 自定义排序(需要转为Integer[]) 阅读全文
posted @ 2025-11-24 10:00
Nickey103
阅读(7)
评论(0)
推荐(0)
摘要:
递归算法复杂度分析 递归是算法设计中的重要技术,能将复杂问题分解为相似子问题。然而,递归算法的性能分析往往比迭代算法复杂。本文系统介绍递归算法时间与空间复杂度的分析方法,并通过实例帮助你掌握这一关键技能。 一、理解递归算法的基本结构 递归算法通过函数调用自身解决问题,包含两个核心部分: 基本情况:递 阅读全文
posted @ 2025-11-24 09:56
Nickey103
阅读(47)
评论(0)
推荐(0)

浙公网安备 33010602011771号