剑指 Offer 42. 连续子数组的最大和
这道题的链接: 剑指 Offer 42. 连续子数组的最大和
这种方法用的很巧,如果当前位置的数组和前一个数组加起来比加零大,那么就加起来,然后和已经存在的最大值比较,我们从头到尾扫描下来,使用变量存在的最大值就知道是多少了。代码如下:
class Solution {
public int maxSubArray(int[] nums) {
int res = nums[0];
for(int i = 1; i < nums.length; i++) {
nums[i] += Math.max(nums[i - 1], 0);
res = Math.max(res, nums[i]);
}
return res;
}
}