128. 最长连续序列
核心思路用 HashSet 去重 O(1) 查找 只从“起点”扩展。思路把所有数字放进HashSet然后只做一件事只有当num - 1不存在时才把num当作“连续序列起点”这样可以避免重复遍历。从起点不断 1 扩展长度。Java O(n)import java.util.*; class Solution { public int longestConsecutive(int[] nums) { if (nums null || nums.length 0) return 0; SetInteger set new HashSet(); for (int num : nums) { set.add(num); } int maxLen 0; for (int num : set) { // 只从“起点”开始 if (!set.contains(num - 1)) { int current num; int len 1; while (set.contains(current 1)) { current; len; } maxLen Math.max(maxLen, len); } } return maxLen; } }