LeetCode 53. 最大子序和

53. 最大子序和

难度简单

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

进阶:

如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。

思路:贪心,遇到小于零的数,临时最大值等于零,否则,比较当前最大值,大于,赋值。

 1 int maxSubArray(int* nums, int numsSize){
 2     int submax=0,max,i;
 3     max=nums[0];
 4     for(i=0;i<numsSize;i++){
 5         submax+=nums[i];
 6         max=submax>max?submax:max;
 7         submax=submax<0?0:submax;
 8     }
 9     return max;
10 }
原文地址:https://www.cnblogs.com/woju/p/12822627.html