码迷,mamicode.com
首页 > Web开发 > 详细

128. Longest Consecutive Sequence(js)

时间:2019-05-24 00:58:51      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:function   continue   ted   pre   ber   integer   elements   you   sequence   

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;
};

 

128. Longest Consecutive Sequence(js)

标签:function   continue   ted   pre   ber   integer   elements   you   sequence   

原文地址:https://www.cnblogs.com/xingguozhiming/p/10915374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!