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;
    }
};
相关推荐
星释1 小时前
Rust 练习册 :Pythagorean Triplet与数学算法
开发语言·算法·rust
星释1 小时前
Rust 练习册 :Nth Prime与素数算法
开发语言·算法·rust
多喝开水少熬夜2 小时前
Trie树相关算法题java实现
java·开发语言·算法
WBluuue2 小时前
数据结构与算法:树上倍增与LCA
数据结构·c++·算法
bruk_spp3 小时前
牛客网华为在线编程题
算法
黑屋里的马4 小时前
java的设计模式之桥接模式(Bridge)
java·算法·桥接模式
sin_hielo5 小时前
leetcode 1611
算法·leetcode
李小白杂货铺5 小时前
识别和破除信息茧房
算法·信息茧房·识别信息茧房·破除信息茧房·算法推荐型茧房·观点过滤型茧房·茧房
来荔枝一大筐5 小时前
C++ LeetCode 力扣刷题 541. 反转字符串 II
c++·算法·leetcode
暴风鱼划水6 小时前
算法题(Python)数组篇 | 6.区间和
python·算法·数组·区间和