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;
    }
};
相关推荐
王老师青少年编程14 小时前
信奥赛C++提高组csp-s之拓扑排序详解
c++·算法·拓扑排序·csp·信奥赛·csp-s·提高组
kaikaile199514 小时前
matlab计算流场
人工智能·算法·matlab
老鼠只爱大米14 小时前
LeetCode算法题详解 42:接雨水
leetcode·动态规划·双指针·单调栈·接雨水·雨水收集
3GPP仿真实验室14 小时前
【Python源码】6G:PyTorch OFDM 教学仿真平台
算法
xie_pin_an14 小时前
C++ 从入门到进阶:核心知识与实战指南
java·c++·算法
我是个菜鸡.15 小时前
多模态算法面经准备
算法
AlenTech15 小时前
739. 每日温度 - 力扣(LeetCode)
算法·leetcode·职场和发展
老鼠只爱大米15 小时前
LeetCode算法题详解 11:盛最多水的容器
leetcode·面试题·双指针·盛最多水的容器·面积最大化
MM_MS16 小时前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
mit6.82416 小时前
山脉二分找中值|子集型回溯
算法