Max Non Negative SubArray Easy Java soln


#1
 public ArrayList<Integer> maxset(ArrayList<Integer> list) {
    ArrayList<Integer> temp = new ArrayList<>();
    ArrayList<Integer> res = new ArrayList<>();
    long sum = 0;
    long maxSum = Integer.MIN_VALUE;
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i) >= 0) {
            sum += list.get(i);
            temp.add(list.get(i));
        }

        if (list.get(i) < 0) {
            if (sum > maxSum || (sum == maxSum && temp.size() > res.size())) {
                res.clear();
                maxSum = Math.max(sum, maxSum);
                res.addAll(new ArrayList<Integer>(temp));


            }

            temp.clear();
            sum = 0;

        }


    }
    if (sum > maxSum) {
        res.clear();
        maxSum = Math.max(sum, maxSum);
        res.addAll(new ArrayList<Integer>(temp));

        temp.clear();
    }
    return res;
}