你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

leetcode53——最长数组和

2021/12/13 20:39:42

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

 而且想到了 遇到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