面试题 16.17. 连续数列

题目

给定一个整数数组,找出总和最大的连续数列,并返回总和。

示例1:

1
2
3
输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

解法

解法一:

贪心

Java

1
2
3
4
5
6
7
8
9
public int maxSubArray(int[] nums) {
int result = nums[0];
int preNum = nums[0];
for (int i = 1;i < nums.length;i++) {
preNum = Math.max(preNum, 0) + nums[i];
result = Math.max(preNum, result);
}
return result;
}
0%