> For the complete documentation index, see [llms.txt](https://mayanktyagi3111.gitbook.io/interview-prep/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mayanktyagi3111.gitbook.io/interview-prep/strings-arrays-and-2-pointers/longest-consecutive-sequence.md).

# Longest Consecutive Sequence

Given an unsorted array of integers, find the length of the longest consecutive elements sequence.

Your algorithm should run in O(*n*) complexity.

**Example:**

```
Input: [100, 4, 200, 1, 3, 2]
Output: 4
Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4.
```

```java
class Solution {
    public int longestConsecutive(int[] nums) {
        HashMap<Integer, Boolean> map = new HashMap<>();
        for (int x : nums) {
            map.put(x, true);
        }
        int maxLen = 0;
        for (int x : map.keySet()) {
            if (map.get(x) == true) {
                int temp = x;
                int currentLen = 0;
                while (map.containsKey(temp)) {
                    currentLen++;
                    map.put(temp, false);
                    temp++;
                }
                temp = x - 1;
                while (map.containsKey(temp)) {
                    currentLen++;
                    map.put(temp, false);
                    temp--;
                }
                maxLen = Math.max(maxLen, currentLen);
            }
        }
        return maxLen;
    }
}
```
