最大子数组和
贪心
遍历数组,记录之前和, 比较 当前元素 和 [当前元素+之前和],取当中最大值作为当前和,然后更新最大和: max = Math.max(max, 当前和);
public int maxSubArray(int[] nums) {
int result = nums[0];
int sum = 0;
int pre;
for(int num: nums) {
pre = sum;
sum = Math.max(num, num + pre);
result = Math.max(result, sum);
}
return result;
}
时间复杂度: O(n)
空间复杂度: O(1)
注: 之前和 = 上一轮遍历的当前和。