LC.P1043[分隔数组以得到最大和]
方法一:动态规划(超时)
1 | class Solution { |
- 时间复杂度:$O(k^n)$,其中$n$为$arr$的长度,近似可看做一棵高度为$n$的$k$叉树。
- 空间复杂度:$O(n)$
方法二:动态规划+记忆化搜索
1 | class Solution { |
数组实现(速度更快)
1 | class Solution { |
1 | func maxSumAfterPartitioning(arr []int, k int) int { |
- 时间复杂度:$O(nk)$
- 空间复杂度:$O(n)$
方法三:递推
1 | class Solution { |
- 时间复杂度:$O(nk)$
- 空间复杂度:$O(n)$
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 byu_rself!
评论