题解 | #连续子数组的最大和(二)#

https://www.nowcoder.com/practice/11662ff51a714bbd8de809a89c481e21

/**

记录最大和的开始位置和结束位置就好啦,空间复杂度O(1),时间复杂度O(n)
**/
import java.util.*;
public class Solution {
    public int[] FindGreatestSumOfSubArray (int[] array) {
        int min = 0,max =0,maxsum=-101;
        for(int i=0,j=0,temp=-101;i<array.length;i++){
            if(temp+array[i]<array[i]){
                temp = array[i];
                j=i;
            }else{
                temp+=array[i];
            }
            if(temp>=maxsum){
                max =i;
                min = j;
                maxsum = temp;
            }   
        }
        int[] res = new int[max-min+1];
        for(int i=min;i<=max;i++)res[i-min]=array[i];
        return res;
    }
}

全部评论

相关推荐

听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务