/* Longest Consecutive Sequence https://leetcode.com/problems/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. */ /** * @param {number[]} nums * @return {number} */ var longestConsecutive = function (nums) { if (nums.length === 0) return 0; var setNums = new Set(); for (var i = 0; i < nums.length; i++) setNums.add(nums[i]); var cons = 1; var currentCons = 1; for (i = 0; i < nums.length; i++) { var number = nums[i]; if (setNums.has(number)) { setNums.delete(number); var prevNum = number - 1; while (setNums.has(prevNum)) { currentCons++; setNums.delete(prevNum); prevNum--; } var nextNum = number + 1; while (setNums.has(nextNum)) { currentCons++; setNums.delete(nextNum); nextNum++; } if (currentCons > cons) cons = currentCons; } currentCons = 1; } return cons; }; module.exports.longestConsecutive = longestConsecutive;