为了账号安全,请及时绑定邮箱和手机立即绑定

leetcode终于有个fighting了

标签:
JavaScript
/**
 * @param {number[]} nums
 * @return {number}
 */
var longestConsecutive = function(nums) {
//分别存负 0  正    
    var aryA=[];
    var aryB=[];
    var aryC=[];
    for(var i=0;i<nums.length;i++){
        if(nums[i]==0){
            aryB[0]=1;
        }else if(nums[i]>0){
            aryC[nums[i]]=1;
        }else{
            aryA[Math.abs(nums[i])]=1;
        }
    }

    function getMax(ary){
        var temp;
        var max=0;
        var count=0;
        for(var i in ary){
           if(temp==undefined){
               temp=i;
               count=1;
           }else{
               if(i==(+temp+1)){
                 count++;  
               }else{
                 count=1; 
               }
               temp=i;
           }
           max=Math.max(max,count);
        }
        return max;
    }

    function getMaxALL(ary1,ary2){
        var i=1;
        var j=1;
        while(ary1[i]){
            i++;
        }
        while(ary2[j]){
            j++;
        }
        return i+j-2;
    }

    var maxA=getMax(aryA);
    var maxB=getMax(aryB);
    var maxC=getMax(aryC);
    var maxAll;

    if(maxB==0){
        return Math.max(maxA,maxC);
    }else{
        maxAll=getMaxALL(aryA,aryC)+1;
        return Math.max(maxA,maxB,maxC,maxAll);
    }

};
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消