输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6
代码如下:
class Solution {
public static int maxSubArray(int[] nums) {
int maxsum=nums[0]; //定义数组最大和初始值
int tempsum=nums[0]; //定义数组临时和初始值
//应从i=1开始循环,不能直接从i=0计算, 原因如下面的测试实例
for(int i=1;i<nums.length;i++){
tempsum=tempsum<=0?nums[i]:nums[i]+tempsum;
if(tempsum>maxsum)
maxsum=tempsum;
}
return maxsum;
}
public static void main(String[] args){
int a[]={-1};
System.out.println(maxSubArray(a));
}
}