前言说明
算法学习,日常刷题记录。
题目连接
题目内容
给定一个整数数组,找出总和最大的连续数列,并返回总和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组[4,-1,2,1]的和最大,为6。
进阶:
如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。
分析过程
第一步
定义最大总和max,初始值为int类型的最小值-2147483648。
定义总和sum,初始值为0。
第二步
开始循环,遍历数组nums,在遍历时累加计算当前元素到当前总和sum。
第三步
循环过程中:
如果当前总和sum大于最大总和max,最大总和max更新为当前总和sum。
如果当前总和sum小于0,重置当前总和sum为0。
因为如果当前总和sum小于0,假如后面的连续数列得到最大总和sum,因为前面连续数列是负数,如果加上前面连续数列,肯定是变小的,所以