import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] FindGreatestSumOfSubArray (int[] array) {
// write code here
if (1 == array.length) {
return array;
}
int pre = array[0];
int max = array[0];
ArrayList<Integer> preArr = new ArrayList<>();
ArrayList<Integer> res = new ArrayList<>();
preArr.add(array[0]);
res.add(array[0]);
for (int i = 1; i < array.length; i++) {
if (pre < 0) {
pre = array[i];
preArr.clear();
preArr.add(array[i]);
} else {
pre += array[i];
preArr.add(array[i]);
}
if (pre > max) {
max = pre;
res.clear();
res.addAll(preArr);
} else if (pre == max && res.size() < preArr.size()) {
res.clear();
res.addAll(preArr);
}
}
return res.stream().mapToInt(Integer::intValue).toArray();
}
}