Java

连续子数组的最大和

http://www.nowcoder.com/questionTerminal/459bd355da1549fa8a49e350bf3df484

Java

  • 解题思路:
  • 1.双重循环,求以每个字符开始的子数组,(如1,2,3)==》1;1,2;1,2,3;...
  • 2.不断更新最大值(max初始值为array[0],每求得一个子数组sum就比较一次)
  • 3.用first,last,记录子数组下标(初始值为0;每一次更新max,就记录下当时的循环下标)
    import java.util.ArrayList;
    
public class Solution {
 public int FindGreatestSumOfSubArray(int[] array) {

    int max =array[0];
   int sum = 0;
    int first = 0;
    int last = 0;
    int length = array.length;

    ArrayList<Integer> res =new ArrayList<>();

    for (int i = 0;i<length;i++){
        sum=array[i];
        if (sum>max){
            max=sum;
            first=i;
        }
        for (int j = i+1;j<length;j++){
            sum+=array[j];
            if (sum>max){
                max=sum;
                first = i;
                last = j ;
            }
        }
    }
 for (int i = first;i<=last;i++){

     res.add(array[i]);
    }

    return max;
}

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:30
点赞 评论 收藏
分享
asdasdasda...:19岁,不容易啊可能升个本会好点,现在学历歧视太严重了
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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