题目
代码部分一(11ms 98.26%)
class Solution {
public int maxSubArray(int[] nums) {
int sum = 0, hsum = 0, res = Integer.MIN_VALUE;
for(int l = 0; l < nums.length; l++){
sum += nums[l];
hsum += nums[l];
res = sum > res ? sum : res;
res = hsum > res ? hsum : res;
if(hsum < 0) hsum = 0;
}
return res;
}
}
代码部分二(9ms 99.28%)
class Solution {
public int maxSubArray(int[] nums) {
int sum = nums[0];
int tmp = sum;
for(int i = 1; i < nums.length; i++) {
tmp = tmp < 0 ? nums[i] : tmp + nums[i];
sum = Math.max(sum, tmp);
}
return sum;
}
}