连续子数组的最大和
力扣 剑指 Offer 42. 连续子数组的最大和
题目说明
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
要求时间复杂度为O(n)。
提示:
1 <= arr.length <= 10^5-100 <= arr[i] <= 100
示例
示例1:
1 | 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] |
笔者理解
此题是一道动态规划算法问题,在力扣题库中被定义为简单题。
解法
当笔者阅读完此题后,发现此题的动态规划里面好像带一点的贪心,用dp数组来模拟连接子串的过程,如果前面的子串的和大于0我就继续连接,否则我就重新开始子串连接,让我们来看看具体如何实现的吧。
实现
1 | class Solution { |
时间空间效率都还行,可见此解法还比较适合此题;
总结
本题是今天的每日一题,难度是为简单,感兴趣的朋友都可以去尝试一下,此题还有其他更多的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!







