当前位置: 首页 > news >正文

LeetCode 128: 最长连续序列

LeetCode 128: 最长连续序列

题目:

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

解题思路

通过哈希集合存储整数,以快速判断是否存在相邻数字,从而高效地找出数组中的最长连续序列

1: 首先将数组中的所有元素放入到 HashSet 中,去除掉重复元素。并用于后续常数级别的查询操作。

2: 遍历整个HashSet,首先判断当前元素-1 的值是否在 HashSet中,如果不存在,才有可能是一个连续的序列。

3: 如果第一个元素-1 的值 不在 HahSet 中,则记录当前的值,循环查询当前值+1 的值是否在 HashSet中。如果存在,则连续序列的长度+1。

4: 最后计算连续序列的最大值。

解题代码

class Solution {public int longestConsecutive(int[] nums) {Set<Integer> numSet = new HashSet<Integer>();for (int i : nums) {numSet.add(i);}int longStreak = 0;for (int num : numSet ) {if (!numSet.contains(num -1)) {int currentNum = num;int currentStreak = 1;while (numSet.contains(currentNum + 1 )) {currentNum +=1;currentStreak +=1;}longStreak = Math.max(longStreak,currentStreak);}}return longStreak;}
}

以上就是最长连续序列的解题过程。除了上面的解题思路,官方网站上也有其他大神的解题思路。

传送链接如下:

https://leetcode.cn/problems/longest-consecutive-sequence/solutions/?envType=study-plan-v2&envId=top-100-liked

相关文章:

LeetCode 128: 最长连续序列

LeetCode 128: 最长连续序列 题目: 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums […...

大语言模型需要的可观测性数据的关联方式

可观测性数据的关联方式及其优缺点 随着现代分布式架构和微服务的普及&#xff0c;可观测性&#xff08;Observability&#xff09;已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态&#xff0c;还…...

【韩顺平linux】部分上课笔记整理

整理一下一些韩顺平老师上课时候的笔记 课程&#xff1a;【小白入门 通俗易懂】韩顺平 一周学会Linux linux环境&#xff1a;使用阿里云服务器 笔记参考 &#xff1a; [学习笔记]2021韩顺平一周学会Linux 一、自定义函数 基本语法 应用实例&#xff1a; 计算两个参数的和…...

python调用pc的语音借口

先安装&#xff1a; pip install pyttsx3再运行&#xff1a; import pyttsx3 # 初始化语音引擎 def init_engine():engine pyttsx3.init()# 设置中文语音voices engine.getProperty(voices)for voice in voices:if chinese in voice.name.lower():engine.setProperty(voice…...

【Golang学习之旅】Golang 内存管理与 GC 机制详解

文章目录 前言1. Go 语言的内存管理的简述2. Golang 内存管理机制2.1 Go 语言的内存分配模型2.2 Go 变量分配示例2.3 Go 语言的内存池&#xff08;sync.Pool&#xff09; 3. Golang 垃圾回收&#xff08;GC&#xff09;机制详解3.1 Go 的 GC 机制概述3.2 GC 触发条件3.3 手动触…...

Kamailio 各个功能的共同点、不同点及应用场景

Kamailio 各个功能的共同点、不同点及应用场景&#xff1a; 功能共同点不同点应用场景SIP 注册服务器处理用户注册请求&#xff0c;维护用户位置信息专注于用户设备的注册和注销&#xff0c;维护设备位置企业内部通信系统&#xff0c;确保用户设备的动态注册和注销SIP 代理服务…...

Linux(CentOS)安装 Nginx

CentOS版本&#xff1a;CentOS 7 Nginx版本&#xff1a;1.24.0 两种安装方式&#xff1a; 一、通过 yum 安装&#xff0c;最简单&#xff0c;一键安装&#xff0c;全程无忧。 二、通过编译源码包安装&#xff0c;需具备配置相关操作。 最后附&#xff1a;设置 Nginx 服务开…...

string 与 wstring 的字符编码

测试代码: #include<stdio.h> #include<stdlib.h> #include<windows.h> #include <locale.h> #include <string> #include <iostream>// 函数用于计算UTF-8字符串中的字符数 int utf8_strlen(const char* str) {int len = 0;for (; *s…...

C#面试常考随笔14: 方法如何传递不定数量的参数?params关键字怎么使用?

使用params关键字&#xff0c;就可以像python传参那样传递多个参数&#xff0c;类似元组 主要作用 params 关键字的主要作用是让方法可以接受不定数量的参数&#xff0c;而不需要在调用方法时显式地创建数组来传递多个参数。这为方法调用提供了更大的灵活性&#xff0c;使得代…...

开发一款类似《王者荣耀》的游戏是一个复杂的系统工程,涉及多个领域的知识和技术。以下是从多个角度详细阐述如何开发的思维。

一、明确游戏定位与核心玩法 游戏类型 MOBA&#xff08;Multiplayer Online Battle Arena&#xff09;&#xff1a;强调团队合作、策略性和即时战斗。确定游戏模式&#xff08;如5v5、3v3等&#xff09;和地图设计。 核心玩法 角色设计&#xff1a;英雄技能、属性、成长曲线。…...

VMware下Linux和macOS安装VSCode一些总结

本文介绍VMware下Linux和macOS安装VSCode的一些内容&#xff0c;包括VSCode编译器显示中文以及安装.NET环境和Python环境。 VSCode下载地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 一.Linux系统下 1.安装中文包 按 Ctrl Shift P 打开命令面板。输…...

aspectFill(填充目标区域的同时保持图像的原有宽高比 (aspect ratio)图像不会被拉伸或压缩变形

“aspectFill” 是一个常用于图像和视频处理的术语&#xff0c;尤其是在用户界面 (UI) 设计和图形编程领域。它描述的是一种图像缩放或调整大小的方式&#xff0c;旨在填充目标区域的同时保持图像的原有宽高比 (aspect ratio)。 更详细的解释: Aspect Ratio (宽高比): 指的是图…...

我的年度写作计划

目录 计算机经典四件 数据结构 计算机网络体系 经典操作系统与计算机架构 嵌入式领域笔记 其他部分 私货部分 笔者打算在这里理一下今年的写作计划&#xff0c;如下所示&#xff1a; 计算机经典四件 数据结构 笔者因为冲刺面试需要&#xff0c;还是要更加扎实的掌握自…...

DeepSeek与llama本地部署(含WebUI)

DeepSeek从2025年1月起开始火爆&#xff0c;成为全球最炙手可热的大模型&#xff0c;各大媒体争相报道。我们可以和文心一言一样去官网进行DeepSeek的使用&#xff0c;那如果有读者希望将大模型部署在本地应该怎么做呢&#xff1f;本篇文章将会教你如何在本地傻瓜式的部署我们的…...

SOA(面向服务架构)全面解析

1. 引言 什么是SOA&#xff08;面向服务架构&#xff09; SOA&#xff08;Service-Oriented Architecture&#xff0c;面向服务架构&#xff09;是一种将应用程序功能以“服务”的形式进行模块化设计的架构风格。这些服务是独立的功能模块&#xff0c;它们通过定义明确的接口…...

PyQt6/PySide6 的 QDialog 类

QDialog 是 PyQt6 或 PySide6 库中用于创建对话框的类。对话框是一种特殊的窗口&#xff0c;通常用于与用户进行短期交互&#xff0c;如输入信息、显示消息或选择选项等。QDialog 提供了丰富的功能和灵活性&#xff0c;使得开发者可以轻松地创建各种类型的对话框。下面我将详细…...

mes系统对工业数字化转型起到重要作用,它的实际应用有哪些

一、生产计划与调度 在工业数字化转型中&#xff0c;MES 系统能够对生产计划进行高效的管理和调度。通过与企业资源计划&#xff08;ERP&#xff09;系统的集成&#xff0c;MES 可以获取生产订单信息&#xff0c;并根据生产设备的状态、人员安排以及物料供应情况等因素&#x…...

Qt:项目文件解析

目录 QWidget基础项目文件解析 .pro文件解析 widget.h文件解析 widget.cpp文件解析 widget.ui文件解析 main.cpp文件解析 认识对象模型 窗口坐标系 QWidget基础项目文件解析 .pro文件解析 工程新建好之后&#xff0c;在工程目录列表中有⼀个后缀为 ".pro" …...

【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)

重要信息 官网&#xff1a;www.cnsse.org 时间&#xff1a;2025年2月21-23日 地点&#xff1a;中国-青岛 简介 第五届计算机网络安全与软件工程&#xff08;CNSSE 2025&#xff09;将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…...

Java 大视界 -- Java 大数据在智能供应链中的应用与优化(76)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...