LeetCode-热题100:128.最长连续序列

news/2024/7/6 4:06:34

题目描述

给定一个未排序的整数数组 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 <= 105
-109 <= nums[i] <= 109

代码及注释

func longestConsecutive(nums []int) int {
    // 创建一个布尔类型的映射集合,用于存储数组中的元素
    set := map[int]bool{}

    // 将数组中的元素添加到映射集合中,标记为已存在
    for _, num := range nums {
        set[num] = true
    }

    // 初始化最长连续序列的长度为 0
    Longest := 0

    // 遍历映射集合中的每个元素
    for num := range set {
        // 如果当前元素的前一个元素不存在于映射集合中
        if !set[num-1] {
            // 从当前元素开始,逐个查找连续的元素
            x := num + 1
            for set[x] {
                x++
            }
            // 更新最长连续序列的长度
            Longest = max(Longest, x-num)
        }
    }

    // 返回最长连续序列的长度
    return Longest
}


http://lihuaxi.xjx100.cn/news/2113938.html

相关文章

【wpf 应用6】基本控件-Label的详解与示例

在WPF中&#xff0c;Label控件主要用于显示文本信息&#xff0c;通常用于作为其他控件的说明或者展示数据。Label控件本身不支持交互&#xff0c;它仅用于展示目的。与TextBlock控件相比&#xff0c;Label控件提供了一些特定的样式和行为&#xff0c;使其更适合作为说明性文本使…

Java毕业设计-基于springboot开发的数码论坛系统设计与实现-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、管理员功能模块3、用户后台管理模块 四、毕设内容和源代码获取总结 **Java毕业设计-基于springboot开发的数码论…

计算机网络——数据链路层(数据链路层功能概述)

计算机网络——数据链路层&#xff08;数据链路层功能概述&#xff09; 数据链路层的功能数据链路层的基本概念封装成帧和透明传输 我们之前已经学完了物理层的所有内容&#xff0c;今天开始我们要进入数据链路层的学习&#xff0c;如果有小伙伴对物理层的内容感兴趣的话&#…

如何用联合(共用体)union验证系统大小端

一&#xff1a;思路 由联合体的特点&#xff0c;可知上图&#xff0c;char c 和 int i 共用四个字节&#xff0c;假设是小端&#xff0c;则由左到右是低地址到高地址&#xff0c;四个字节的内容如图所示01 00 00 00 代码展示&#xff1a; 如果第一个字节是1&#xff0c;则证明…

数据结构之排序一

目录 1.排序 一.概念及其分类 二.排序的稳定性 2.插入排序 一.基本思想 二.插入排序的实现 复杂度 稳定性的分析 3.希尔排序 一.预排序代码的实现 二.希尔排序代码实现 复杂度分析 4.clock函数 1.排序 一.概念及其分类 说到排序&#xff0c;我们都不陌生&#x…

第十九章 TypeScript 装饰器Decorator

Decorator 装饰器是一项实验性特性&#xff0c;在未来的版本中可能会发生改变 它们不仅增加了代码的可读性&#xff0c;清晰地表达了意图&#xff0c;而且提供一种方便的手段&#xff0c;增加或修改类的功能 若要启用实验性的装饰器特性&#xff0c;你必须在命令行或tsconfig…

如何默认管理员开启CMD

许多朋友使用win10系统的时候经常会用到CMD命令&#xff0c;而且还要以管理员身份运行&#xff0c;那么如何设置默认打开cmd都是以管理员身份运行&#xff0c;设置的方法挺简单&#xff0c;大家跟着下面的步骤操作即可。 Win10怎么默认以管理员身份运行cmd&#xff1f; 1、在开…

unity 添加newtonsoft-json

再git url上添加&#xff1a;com.unity.nuget.newtonsoft-json