给定一个整数数组 prices,其中 prices[i] 表示第 i 天的股票价格。你最多可以完成 k 笔交易(买入一次并卖出一次算一笔交易),且必须卖出后再买入。请设计算法计算你能获得的最大利润。
考察说明
考察动态规划状态设计、交易次数限制与状态转移的正确性
回答思路
- 正确定义状态 dp[i][j][0/1] 分别表示第 i 天、已完成 j 笔交易、是否持有股票的最大利润
- 能推导并正确实现买入卖出造成的交易次数变化
- 能处理 k 过大时退化为不限次数交易的情况
- 能给出 O(n*k) 时间与 O(k) 或 O(n*k) 空间的复杂度分析
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。