java list算法问题(给定一 int 数组返回倒序的最大连续递增的区间(至少大于等于2)数组倒序)
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<Integer> res = new ArrayList<Integer>(); List<Integer> list = new ArrayList<Integer>(); 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(); }