唉 其实思路都有 但是没写出来

而且想到了 遇到sum小于0时应该重置一次
在比较 就是感觉自己写不出来 就不写
打死自己
class Solution {
public int maxSubArray(int[] nums) {
if(nums[0]==1) return nums[0];
//变形可求 最长数组的位置
int sum=0;
int max=nums[0];
for(int num:nums){
if(sum>0){//sum大于0时 继续加 然后每次max是保存的最大值
sum+=num;
}else{//和小于0时 就从新开始
sum=num;
}
max=Math.max(sum,max);
}
}
}
这题也可以额外求最长数组长度
当sum<0时 更新start
当sum更大时 更新end
