贪心算法 动态规划

Posted sweet-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贪心算法 动态规划相关的知识,希望对你有一定的参考价值。

技术图片

 

 

/*
* 方法一 贪心法 O(n)
*
* 当叠加的和小于0时,就从下一个数重新开始,
* 同时更新最大和的值(最大值可能为其中某个值),
* 当叠加和大于0时,将下一个数值加入和中,
* 同时更新最大和的值,依此继续。
*
* 举例: nums = [-2,1,-3,4,-1,2,1,-5,4]
* sum = INT_MIN <= 0-> sum = -2 <= 0 -> sum = 1 > 0 ->
* -> sum = -2 <= 0 -> sum = 4 > 0 -> sum = 3 > 0 ->
* -> sum = 5 > 0 -> sum = 6 > 0 -> sum = 1 > 0 ->
* -> sum = 5 > 0
* res = [-2, 1, 1, 4, 4, 5, 6, 6, 6]
* 最终返回 res = 6
* */

技术图片

 

 动态规划 

在原地修改数组,将数组每个位置的值更改为当前位置上的最大和。

复杂度分析

- 时间复杂度:O(N)O(N),遍历了一次数组。
- 空间复杂度:O(1)O(1),使用了常数空间。

技术图片

 

以上是关于贪心算法 动态规划的主要内容,如果未能解决你的问题,请参考以下文章

python_分治算法贪心算法动态规划算法

LeetCodeLeetCode之跳跃游戏——动态规划+贪心算法

习题—动态规划贪心算法

五大常用算法:分治动态规划贪心回溯和分支界定

贪心算法,递归算法,动态规划算法比较与总结

算法导论—分治法思想动态规划思想贪心思想