128. Longest Consecutive Sequence(js)

128. 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) {
    
        let res=0;
        let map={};
        for(let item of nums){
//             出现重复,跳过
            if(map[item]){
               continue; 
            }else{
                let left=map[item-1]?map[item-1]:0;
                let right=map[item+1]?map[item+1]:0;
                
                let sum=left+right+1;
                map[item]=sum;
                res=Math.max(res,sum);
//                 确保相邻的每个数的个数都相等
                map[item-left]=sum;
                map[item+right]=sum;
            }
        }
        return res;
};

 

posted @ 2019-05-23 23:47  mingL  阅读(86)  评论(0编辑  收藏  举报