# 128. Longest Consecutive Sequence

• Time: $O(n)$
• Space: $O(n)$
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class Solution { public: int longestConsecutive(vector& nums) { int ans = 0; unordered_set seen{begin(nums), end(nums)}; for (int num : nums) { // Num is the start of a sequence if (seen.count(num - 1)) continue; int length = 1; while (seen.count(++num)) ++length; ans = max(ans, length); } return ans; } }; 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Solution { public int longestConsecutive(int[] nums) { int ans = 0; Set seen = Arrays.stream(nums).boxed().collect(Collectors.toSet()); for (int num : nums) { // Num is the start of a sequence if (seen.contains(num - 1)) continue; int length = 1; while (seen.contains(++num)) ++length; ans = Math.max(ans, length); } return ans; } } 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Solution: def longestConsecutive(self, nums: List[int]) -> int: ans = 0 seen = set(nums) for num in nums: if num - 1 in seen: continue length = 0 while num in seen: num += 1 length += 1 ans = max(ans, length) return ans