给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
-
使用一次遍历算法:遍历数组,累加数组中元素,并判断累加后数值是否最大。所以,我们初始化定义max保存最大子序和,num保持累加数据。
定义 -
初始化时设置数组中第一个元素为max初始值
初始化max值 -
遍历数组,并判断累加后数值是否大于max,并更新最大值
执行循环 -
如果在遍历的过程中遇到负数怎么办?因为我们不知道后续是否还会出现正数,比如-1,2的序列,所以继续累加。
当累加后值为负数时,我们重新开始累加。
负数时处理 -
最后,我们给出完整算法如下所示;算法的关键就在于理解以及处理,当累加为负数时,重新进行累加。
完整算法




