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

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;
    }
}

全部评论

相关推荐

06-26 15:35
武汉大学 运营
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
粗心的熊熊求求offer:什么内容都没有还弄两页
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务