Description:
Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence.
You must write an algorithm that runs in O(n) time.
Solution:
Time Complexity : O(n)
Space Complexity: O(n)
var longestConsecutive = function(nums) { // Handle base case of empty array if (!nums.length) return 0; // Give ability to look up nums by value const set = new Set(nums); let max = 0; for (const num of set) { // Make sure we are starting at the beginning of the sequenece if (set.has(num - 1)) continue; let currNum = num; let currMax = 1; // Look numbers that make a consecutive sequence while (set.has(currNum + 1)) { currNum++; currMax++; } // Update max max = Math.max(max, currMax); } return max; };
Top comments (1)
Thanks man