分析角度:
1. 暴力法 T(n)=O(n^3)
2. DP T(n)=O(n) S(n)=O(n)
关键在递推方程
DP[i] 表示从 0~i 的最大连续子数组和,它跟 DP[i+1] 的关系为
DP[i+1] = Math.max(nums[i], DP[i] + nums[i])
解释:DP[i] 表示过去的经历,如果过去的经历总和,没有比现在的机会的更好,那就舍弃过去的,重新开始(选择 num[i])
3. Kadane(卡登)算法
S(n)=O(n) 可以优化为 O(1) 即 Kadane(卡登)算法
展开
评论
点赞