LeetCode 刷题【128. 最长连续序列】

128. 最长连续序列

自己做

解1:排序

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        if(nums.length == 0)
            return 0;

        //排序
        Arrays.sort(nums);

        int max = 1;
        int len = 1;

        for(int i = 1; i < nums.length; i++){
            if(i > 1 && nums[i] == nums[i - 1])
                nums[i - 1] = nums[i - 2];
            else if(nums[i] == nums[i - 1] + 1)
                len++;
            else
                len = 1;

            if(len > max)
                max = len;
        }

        return max;
    }
}

看题解

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        Set<Integer> num_set = new HashSet<Integer>();
        for (int num : nums) {
            num_set.add(num);
        }

        int longestStreak = 0;

        for (int num : num_set) {
            if (!num_set.contains(num - 1)) {
                int currentNum = num;
                int currentStreak = 1;

                while (num_set.contains(currentNum + 1)) {
                    currentNum += 1;
                    currentStreak += 1;
                }

                longestStreak = Math.max(longestStreak, currentStreak);
            }
        }

        return longestStreak;
    }
}
相关推荐
100分简历几秒前
无图标简洁大方的简历模板下载
人工智能·面试·职场和发展·pdf·编辑器
v_for_van3 分钟前
力扣刷题记录1(无算法背景,纯C语言)
算法·leetcode·职场和发展
sjjhd6528 分钟前
C++模拟器开发实践
开发语言·c++·算法
踩坑记录8 分钟前
leetcode hot100 25. K 个一组翻转链表 hard
leetcode·链表
七夜zippoe9 分钟前
大模型低成本高性能演进 从GPT到DeepSeek的技术实战手记
人工智能·gpt·算法·架构·deepseek
二年级程序员9 分钟前
qsort函数的使用与模拟实现
c语言·数据结构·算法·排序算法
ajole17 分钟前
C++学习笔记——C++11
数据结构·c++·笔记·学习·算法·stl
程序员杰哥18 分钟前
如何写出高效的测试用例?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
hoiii18719 分钟前
分布式电源选址定容的MATLAB算法实现
分布式·算法·matlab
客卿12328 分钟前
力扣二叉树简单题整理(第二集)
算法·leetcode·职场和发展