class Solution {
public int maxSubArray(int[] nums) {
if(nums==null || nums.length==0){
return 0;
}
int sum=-101;
int temp=0;
for(int i:nums){
temp= i+temp;
if(sum<temp){
sum=temp;
}
if(temp<0){
temp=0;
}
}
return sum;
}
}
思路:使用贪心的思想,如果前面的某个序列计算出的和为负数,那么就让temp归零。
sum记录当前最大的子数组的和。