给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组 是数组中的一个连续部分。
int maxi(int a, int b){
return a>b?a:b;
}
int maxSubArray(int* nums, int numsSize){
int max = nums[0];
int pre = 0;
for(int i=0;i<numsSize;i++){
pre+=nums[i];
pre = maxi(pre,nums[i]);
max = maxi(pre,max);
}
return max;
}
想到简便的方法还得一会 ,一开始都直接暴力求解了.
不过这个方法是真的巧啊,我都佩服我自己.