LeetCode(45)最长连续序列【哈希表】【中等】

目录

链接: 最长连续序列

1.题目

给定一个未排序的整数数组 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

提示:

  • 0 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9

2.答案

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        if (nums.length == 0) {
            return 0;
        }
        Arrays.sort(nums);
        int maxLength = 1;
        int length = 1;
        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i + 1] - nums[i] == 1) {
                length++;
            } else if (nums[i + 1] != nums[i]) {
                length = 1;
            }
            maxLength = Math.max(maxLength, length);
        }
        return maxLength;
    }
}

3.提交结果截图

整理完毕,完结撒花~ 🌻

相关推荐
风筝在晴天搁浅21 小时前
n个六面的骰子,扔一次之后和为k的概率是多少?
算法
MATLAB代码顾问1 天前
Python实现蜂群算法优化TSP问题
开发语言·python·算法
代码飞天1 天前
机器学习算法和函数整理——助力快速查阅
人工智能·算法·机器学习
jiushiapwojdap1 天前
LU分解法求解线性方程组Matlab实现
数据结构·其他·算法·matlab
笨笨饿1 天前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
纽扣6671 天前
【算法进阶之路】链表进阶:删除、合并、回文与排序全解析
数据结构·算法·链表
消失的旧时光-19431 天前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
智者知已应修善业1 天前
【51单片机不用数组动态数码管显示字符和LED流水灯】2023-10-3
c++·经验分享·笔记·算法·51单片机
AI进化营-智能译站1 天前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai
CS创新实验室1 天前
从盘边到芯端——硬盘接口七十年变迁史
算法·磁盘调度