LeetCodeHot100——128.最长连续序列

这道题的链接放在这里了:

128. 最长连续序列 - 力扣(LeetCode)

这道题主要思路就是想要在一个凌乱的数组中找出一组最长的连续数字序列

我对于这道题个人的解法如下:

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        if(nums==null||nums.length==0){
            return 0;
        }
        Set<Integer> set = new HashSet<>();
        int res = 1;
        for(int num:nums){
            set.add(num);
        }
        for(int num:set){
            if(set.contains(num-1)){
                continue;
            }
            if(set.contains(num+1)){
                int cur = num;
                int curLength = 1;
                while(set.contains(cur+1)){
                    cur++;
                    curLength++;
                }
                res = Math.max(res,curLength);
            }
        }
        return res;
    }
}

直接用循环的暴力查找方法我们就不考虑了,我是使用Set来存储数组中的每一个元素,这也就达到了我的一个目的:"去重",因为如果说数组中出现重复元素的话,是不影响结果的,比如说最长序列是123456,数组中有多个1、多个2...都是对结果没影响的,但是不处理的话会影响我们的效率,接下来我们要遍历set,如果说在set中存在当前的数字+1,那就直接跳过,因为如果我们每一个数字都要计算长度的话那会很浪费时间,所以我们为了节省时间,我选择只对一组连续数字的最小的数字进行长度计算从而获得这个连续数字串的长度,当然选择最大的值也行,逮住最小值就计算一下长度,在取最大值返回就好了;

相关推荐
余生皆假期-6 小时前
配置 CodeX 环境的 Simlink AI 工具链
笔记·单片机·嵌入式硬件·算法
qq_296553276 小时前
[特殊字符] 旋转排序数组中的高效搜索:从线性到二分查找的进阶之路
数据结构·算法·搜索引擎·分类·柔性数组
汉字萌萌哒7 小时前
2025 CSP-S提高级(第一轮)C++真题以及答案
数据结构·算法
明志数科7 小时前
仿真数据与真实数据:机器人训练的数据策略选择
人工智能·算法·机器学习
weyyhdke7 小时前
2026电源与MCU控制设计实战:用Gemini3.5镜像站免费优化开关电源环路与电机FOC算法硬核教程
单片机·嵌入式硬件·算法
小张成长计划..7 小时前
【C++】35:位图,布隆过滤器和海量数据处理(哈希扩展)
算法·哈希算法
z200509307 小时前
今日算法(组合问题III)(回溯的使用)
java·算法·leetcode
2401_889626927 小时前
Java语法进阶篇
算法
Sinsa_SI7 小时前
2026算法应用主题赛初赛-小学4-6组(Python)试卷(含答案+详细解析)
开发语言·python·算法