java list算法问题(给定一 int 数组返回倒序的最大连续递增的区间(至少大于等于2)数组倒序)
输入:1,3,4,9,6,7 则返回:6,7
输入:1,3,4,1,2,3 则返回:1,2,3
输入:1,3,4,2,4,7 则返回:2,4,7
输入:1,8,4,5,6,7 则返回:4,5,6,7
输入:1,3,4,5,6,7 则返回:1,3,4,5,6,7
输入:2,3,4,5,2,3,1 则返回:null
输入:2,3,4,5,1,2,3,1 则返回:null
输入:1,3,4,5,6,7,1 则返回:null
public static int[] result(int[] ints) {
int len = ints.length;
if (len < 2 || ints[len - 1] <= ints[len - 2]) {
return null;
}
List res = new ArrayList();
List list = new ArrayList();
for (int i = len - 1; i > 0; i--) {
int before = ints[i - 1];
int after = ints[i];
list.add(after);
if (after <= before && res.size() == 0) {
res.addAll(list);
list.clear();
} else if (after <= before) {
break;
}
if (i == 1 && res.size() == 0) {
list.add(before);
res.addAll(list);
}
}
Collections.reverse(res);
Integer[] integers = res.toArray(new Integer[res.size()]);
return Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();
}