最大子阵列
题目链接这里写链接内容
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.
题目要求:求出最大的连续序列的和。比如上面array [-2,1,-3,4,-1,2,1,-5,4]中的subarray [4,-1,2,1]为最大的和。
题目思路:注意代码中ele的作用,考虑数组元素全为负数的情况。
解题代码:
public class Solution {
public int maxSubArray(int[] nums) {
int n = nums.length;
if (n == 0)
return 0;
int thissum = 0, maxsum = 0, ele = nums[0];
for (int i = 0; i < n; ++i) {
thissum += nums[i];
if (thissum > maxsum)
maxsum = thissum;
if (thissum < 0)
thissum = 0;
if (nums[i] > ele)
ele = nums[i];
}
if (maxsum == 0)
return ele;
else
return maxsum > ele ? maxsum : ele;
}
}