题目:
分析:
1、最长连续序列的长度为 y-x+1,如1-4:4-1+1 = 4
2、不要被这里的On误导,不敢使用双层循环
3、只要找到最小的数值,并由此开始计算,不产生重复计算,则为On
代码:
public int longestConsecutive(int[] nums) {Set<Integer> set = new HashSet<>();for (int num : nums) {set.add(num);}int max = 0;for (int i = 0; i < nums.length; i++) {if (!set.contains(nums[i] - 1)) {int y = nums[i] + 1;while (set.contains(y)) {y++;}max = Math.max(max, y-nums[i]);}}return max;}