Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
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.
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;
}
}