LeetCode 热题 100 - 哈希 - 128

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

题目

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n)的算法解决此问题。

示例 1:

复制代码
输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

示例 2:

复制代码
输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9

示例 3:

复制代码
输入:nums = [1,0,1,2]
输出:3

提示:

  • 0 <= nums.length <= 105
  • -109 <= nums[i] <= 109

自己的思路和代码

思路

直接将数组进行排序,然后根据不同的情况直接进行判断就可以了。感觉不像是mid题目。

代码

cpp 复制代码
class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        if(nums.empty()) return 0;
        sort(nums.begin(), nums.end());
        int sum = 1;
        int num = 1;
        for(int i=0; i<nums.size()-1; i++) {
            if(nums[i+1] - nums[i] == 1) {
                num++;
            } else if(nums[i] == nums[i+1]) {
                continue;
            } else {
                sum = max(num, sum);
                num = 1;
            }
        }
        sum = max(num, sum);
        return sum;
    }
};
相关推荐
仟濹6 小时前
算法打卡day2 (2026-02-07 周五) | 算法: DFS | 3_卡码网99_计数孤岛_DFS
算法·深度优先
驭渊的小故事7 小时前
简单模板笔记
数据结构·笔记·算法
YuTaoShao7 小时前
【LeetCode 每日一题】1653. 使字符串平衡的最少删除次数——(解法一)前后缀分解
算法·leetcode·职场和发展
VT.馒头7 小时前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
goodluckyaa7 小时前
LCR 006. 两数之和 II - 输入有序数组
算法
孤狼warrior7 小时前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
Σίσυφος19007 小时前
PCL法向量估计 之 RANSAC 平面估计法向量
算法·机器学习·平面
xhbaitxl8 小时前
算法学习day39-动态规划
学习·算法·动态规划
I_LPL8 小时前
day23 代码随想录算法训练营 回溯专题2
算法·hot100·回溯算法·求职面试
智者知已应修善业8 小时前
【洛谷P9975奶牛被病毒传染最少数量推导,导出多样例】2025-2-26
c语言·c++·经验分享·笔记·算法·推荐算法