本文共 2393 字,大约阅读时间需要 7 分钟。
???????????????????????????????????????????????????????????3?????????????????????????????????????????????????????????
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class LianshuZixulie { public boolean isPossible(int[] nums) { if (nums.length < 3) { return false; } List > result = new ArrayList<>(); result.add(new ArrayList<>()); result.get(0).add(nums[0]); for (int i = 1; i < nums.length; i++) { boolean added = false; for (int j = 0; j < result.size(); j++) { List curr = result.get(j); int last = curr.get(curr.size() - 1); if (last + 1 == nums[i]) { curr.add(nums[i]); added = true; break; } } if (!added) { List temp = new ArrayList<>(); temp.add(nums[i]); int pos = findInsertPosition(result); result.add(pos, temp); result = sortAndAdjust(result); } for (List list : result) { if (list.size() >= 3) { return true; } } } return false; } private int findInsertPosition(List > result) { int pos = result.size(); for (int j = 0; j < result.size(); j++) { List curr = result.get(j); if (curr.size() <= new ArrayList<>(temp).size()) { pos = j; } } return pos; } private List > sortAndAdjust(List > result) { Collections.sort(result, (a, b) -> Integer.compare(a.size(), b.size())); return result; } public static void main(String[] args) { int[] input = {1, 2, 3, 3, 4, 4, 5, 5}; System.out.println(new LianshuZixulie().isPossible(input)); }}
??????????????????????????????????????????3?
转载地址:http://ywwvz.baihongyu.com/