/** 面试题 16.17. 连续数列
* @author 作者 Your-Name:
* @version 创建时间:2020年3月5日 下午8:57:24
* 给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
public class 连续数列 {
public int maxSubArray(int[] nums) {
int max =0;
int sum =0;
int ispositive = 0;
for(int i=0;i<nums.length;i++)
{
if(sum+nums[i]>0)
{
sum+=nums[i];
if(sum>max)
{
max=sum;
ispositive=1;
}
}
else
sum=0;
}
if(ispositive==0)
{
Arrays.sort(nums);
return nums[nums.length-1];
}
return max;
}
}