LeetCode:最长连续序列

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        Set<Integer> set = new HashSet<>();
        //将数组中的数字存到set集合中
        for(int num : nums){
            set.add(num);
        }

        int longestStreak = 0;
        //挨个数字检查
        for(int num : set){
            //从set集合中查是否有该比该数字小的数字,如果没有,作为开头开始继续往后找
            if(!set.contains(num - 1)){
                int currentNum = num;
                int currentStreak = 1;
                while(set.contains(currentNum + 1)){
                    currentNum += 1;
                    currentStreak += 1;
                }
                longestStreak = Math.max(longestStreak,currentStreak);
            }
        }
        return longestStreak;
    }
}

先挨个数字检查能作为头元素的数字,找到头元素后,开始找头元素连续的后续元素。

相关推荐
net3m3329 分钟前
一阶软件低通滤波器算法
人工智能·算法
水木流年追梦1 小时前
大模型入门-大模型优化方法12-YaRN 长文本外推技术
人工智能·分布式·算法·正则表达式·prompt
J-Tony111 小时前
【JVM】三色标记法
java·jvm·算法
wengad1 小时前
机器学习实践理论基础|算法、模型和数据集
人工智能·算法·机器学习
嵌入式ZYXC2 小时前
第3篇:《面试题:I2C为什么要加上拉电阻?阻值怎么选?》
stm32·单片机·嵌入式硬件·面试·职场和发展
sbjdhjd2 小时前
面试(5)| 3.5 小时面试复盘第五弹:加班出差 + 客户响应 + 压力面全拆解
经验分享·程序人生·面试·职场和发展·开源·跳槽·求职招聘
梦梦代码精3 小时前
为什么这个开源的AI平台会火?有点东西。。。
人工智能·算法·机器学习·docker·开源
随意起个昵称3 小时前
线性dp-综合刷题1(Not Alone)
算法·动态规划
如何原谅奋力过但无声4 小时前
【灵神高频面试题合集09-13】二叉树、二叉搜索树
数据结构·算法·leetcode
皆圥忈4 小时前
磁盘物理结构与文件系统基础讲解
linux·算法