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;
    }
}
相关推荐
Σίσυφος190013 分钟前
PCL法向量估计 之 RANSAC 平面估计法向量
算法·机器学习·平面
xhbaitxl18 分钟前
算法学习day39-动态规划
学习·算法·动态规划
I_LPL20 分钟前
day23 代码随想录算法训练营 回溯专题2
算法·hot100·回溯算法·求职面试
智者知已应修善业21 分钟前
【洛谷P9975奶牛被病毒传染最少数量推导,导出多样例】2025-2-26
c语言·c++·经验分享·笔记·算法·推荐算法
m0_7369191038 分钟前
C++中的委托构造函数
开发语言·c++·算法
小小小小王王王43 分钟前
洛谷-P1886 【模板】单调队列 / 滑动窗口
c++·算法
网络安全-杰克1 小时前
Jmeter压力测试工具安装与使用
自动化测试·软件测试·测试工具·jmeter·职场和发展
PPPPPaPeR.1 小时前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
看我干嘛!1 小时前
python第五次作业
算法
历程里程碑1 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法