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

}

全部评论

相关推荐

手撕没做出来是不是一定挂
Chrispp3:不会,写出来也不一定过
点赞 评论 收藏
分享
牛客533433175号:更可气的是我做完这些给我拒了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务