首页 > 其他分享 >leetcode-128. 最长连续序列

leetcode-128. 最长连续序列

时间:2022-10-11 10:01:09浏览次数:70  
标签:set int res ++ 序列 连续 128 leetcode

128. 最长连续序列

  • 首先去重,直接把数组装入set集合即可

  • 然后,设集合中的某个数为a。遍历集合set

    • 假如这个集合中,存在a-1,说明a不是一个序列的起始值,跳过

    • 如果不存在a-1,说明a是一个连续序列的起始值,再从a开始顺着往下找连续序列,也就是寻找set有无a++,如果有a++就说明连续,temp长度+1

  • 不要忘记res最终取最大值

    public int longestConsecutive(int[] nums) {
        HashSet<Integer> set = new HashSet<>();//新建hashset,去重
        int res = 0;//最终连续序列的长度
        for(int num : nums){//把所有数都添加进set
            set.add(num);
        }
        for(int a : set){
            if(set.contains(a - 1)){//如果有a-1就说明 a不是某个连续序列的开头,由于本判断,所有数字在本次循环里只遍历了一遍,时间复杂度O(N)
                continue;
            }
            int temp = 0; //用来记录遍历到a时连续序列的长度
            while(set.contains(a++)){//如果set中没有a-1,说明a是某个连续序列的开头,在set中寻找有无a++,如果有就说明有连续序列
                temp++;
            }
            res = Math.max(temp, res);//维护整体最大值和本次序列最大值
        }
        return res;
    }

 

标签:set,int,res,++,序列,连续,128,leetcode
From: https://www.cnblogs.com/phonk/p/16778248.html

相关文章

  • [LeetCode] 1328. Break a Palindrome
    GivenapalindromicstringoflowercaseEnglishletters palindrome,replace exactlyone characterwithanylowercaseEnglishlettersothattheresultingst......
  • 第四章 序列的应用
    实例01:输出每日一帖 在IDLE中创建一个名称为tips.py的文件,然后在该文件中导入日期时间类,然后定义一个列表(保存7条励志文字作为每日一帖的内容),再获取当前的星期,最......
  • LeetCode算法笔记 350. 两个数组的交集 II
    importjunit.framework.TestCase;importjava.util.Arrays;importjava.util.HashMap;publicclassLeetCode03extendsTestCase{/***350.两个数组......
  • 序列化与反序列化
    序列化:是把对象转换为字节序列,永久存到磁盘中。在网络中传输对象也要进行序列化。反序列化:是从磁盘中读取字节序列将它们反序列化成对象读出来。什么是字节序列每一个字......
  • Leetcode 11 -- 贪心
    题目描述最小字典许思路思路来源由于t中的字符后进先出,可以使用一个暂存栈来保存s删除的第一个字符入栈很简单,初始状态下,栈为空,我们可以直接入栈,因此,每次遍历我们......
  • leetCode 27. Remove Element
    [27.RemoveElement][(https://leetcode.cn/problems/remove-element/)思路数组在内存中是连续的,根据此题要求不能删除,而是覆盖暴力解法此题暴力解法是两层for......
  • thinkphp5.1反序列化RCE
    thinkphp5反序列化RCEthinkphp5.1.37-5.1.41NewStarCTF第三周Web题目MaybeYouHaveTothinkMoreThinkPHP5框架反序列化RCE正好来研究一下php框架反序列化php反......
  • leetcode-287. 寻找重复数-数组构成的链表
    287.寻找重复数由题中数字都在[1,n]范围内(包括1和n),可知至少存在一个重复的整数。维护一个映射关系f(n)=index->num,其中数组的下标index,数字为num当一......
  • leetcode349.两个数组的交集
    1.题目描述给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。2.示例示例1:输入:nums1=[1,2,2,......
  • fix协议介绍7-序列号重置
    FIX.5.0SP2MessageSequenceReset [type'4']Thesequenceresetmessageisusedbythesendingapplicationtoresettheincomingsequencenumberontheopposi......