53. 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
该题的主要解题思想如下:
对于含有正数的序列而言,最大子序列和一定为正数,可以从数组的第0个值开始算起,每往后加一个值则更新序列和,若当前序列和小于0,则无法为后来的值提供最大序列和,应该重新确定序列首项。
class Solution {
public int maxSubArray(int[] nums) {
int sum = 0;
int res = nums[0];
for(int i=0;i<nums.length;i++){
if(sum > 0) {
sum += nums[i];
}
else {
sum = nums[i];
}
res = Math.max(res,sum);
}
return res;
}
}