128 最长连续序列

news2024/12/24 20:09:23

在这里插入图片描述
解题思路:
\qquad 由于题目要找的是最长连续序列,那么若已知序列起点,目标值递增向后遍历,借助哈希表检查目标值是否存在,可以在 O ( n ) O(n) O(n)时间内完成。
\qquad 但是若从数组每一个元素开始,遍历查找序列,时间复杂度还是会达到 O ( n 2 ) O(n^2) O(n2)。最理想的情况是同样的序列仅遍历一次,一次遍历完所有序列中的元素,可以通过从序列的起点开始遍历解决。这样问题就变为如何识别序列的起点,这就很简单了,对于当前元素n,只需要判断n-1是否在数组中,即可判断n是否为序列起点。
\qquad 需要考虑到数组中可能存在重复元素,可以通过借助unordered_set数据结构,对数组元素去重,进一步优化运行时间。下面来复习一下C++中Set的用法:

set用法复杂度
insert插入元素O(log n)
earse删除元素O(log n)
find查询set中的元素(返回迭代器)O(log n)
count查询元素的出现的次数O(log n)
clear清楚set中的元素O(n)
empty判断set是否为空O(1)
size返回set有效元素的个数O(1)
	int longestConsecutive(vector<int>& nums) {
        unordered_set<int>  pool;
        int maxi = 0;
        for(auto n : nums)
        {
            pool.insert(n);
        }
        
        for(auto n : pool)
        {
            if(pool.count(n-1) == 0)
            {
                int x = 0;
                int m = n;
                while(pool.count(m) == 1)
                {
                    x++;
                    m++;
                }
                maxi = max(maxi, x);
            }
        }
        return maxi;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2087224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Datawhale X 李宏毅苹果书 AI夏令营_深度学习基础学习心得Task2.2

本次学习分类问题 1、分类与回归&#xff1a; 回归一般输出一个值y_hat 期望与y越接近越好。分类一般有几类就输出几个值&#xff0c;是一个one-hot的向量&#xff0c;在类别对应的位置值为1 本文介绍了一种重复输出数值后加权的方法&#xff0c;但是我做分类一般用全连接层…

【uniapp重大bug】uni-data-select的localdata改变,也会触发@change方法

bug描述 uni-data-select的下拉列表值localdata是动态获取的&#xff0c;且绑定了change方法&#xff0c;在页面加载后&#xff0c;请求localdata的列表数据&#xff0c;给localdata重新赋值&#xff0c;此时发现自动触发了change方法 当前uni版本&#xff1a;^2.0.2-30709202…

全场景——(七)libmodbus 使用

文章目录 一、libmodbus开发库1.1 功能概要1.2 源码获取1.3 libmodbus与应用程序的关系 二、libmodbus源代码解析2.1 核心函数2.2 框架分析与数据结构2.3 情景分析2.3.1 初始化2.3.2 主设备发送请求2.3.3 从设备接收请求2.3.4 从设备回应 2.4 常用接口函数2.4.1 各类辅助接口函…

2024版Assimp配置教程

最近想看看图形学&#xff0c;选择速通LearnOpenGL&#xff0c;不出意外最耗时间的依然是配置环境。按照教程上的把GLFW等等配置的没有问题&#xff0c;但是在Assimp这里卡住了。原因是教程上说的不详细&#xff0c;而网上查的又和现在的版本相去甚远&#xff0c;导致捣鼓了好一…

Linux基础1-基本指令6(grep,zip,tar,查看系统等命令)

一.本章重点 1.grep命令用于过滤文本信息,sort,uniq 2.zip/uzip命令用于压缩&#xff0c;解压文件 3.tar命令用于压缩&#xff0c;解压文件 二.grep grep命令 gerp(文件内容的行过滤工具)&#xff0c;默认会&#xff0c;会匹配文本中的关键字&#xff0c;匹配上的进行行显示 …

全民k歌怎么去水印保存?盘点分享3个无水印保存方法

在全民K歌的世界里&#xff0c;我们尽情展现音乐才华&#xff0c;但有时却会遇到一个棘手的问题&#xff1a;如何将歌曲视频无水印保存&#xff0c;以便自由分享到其他社交平台&#xff1f;为了解决这一难题&#xff0c;本文将为你盘点三种简单有效的无水印保存方法&#xff0c…

Python课堂笔记

1.大小写 大写&#xff1a;True、 None、 False 注意&#xff1a;大小写含义不相同 2.一行多个短句 短句&#xff1a;“ &#xff1b;” 长句&#xff1a;“ \” 3.变量 (1) int A[100] 整型 char B[100] 字符型 &#xff08;2&#xff09;type: 查看变量类型 补充&…

Language Models are Unsupervised Multitask Learners

摘要 自然语言处理任务&#xff0c;如问答、机器翻译、阅读理解和摘要&#xff0c;通常在任务特定的数据集上使用监督学习来处理。当在一个名为WebText的数百万网页的新数据集上训练时,我们证明了语言模型在没有任何明确监督的情况下开始学习这些任务。在不使用127,000多个训练…

【BPF之旅】认识eBPF

文章目录 一、eBPF基础认识1.1 eBPF历史演进1.2 eBPF特点和使用场景eBPF的特点&#xff08;优势&#xff09;eBPF的限制&#xff08;安全性的体现&#xff09;eBPF vs 内核模块应用场景 1.3 eBPF工作原理eBPF程序执行过程eBPF的开销 二、eBPF简单实践&#xff08;Hello World&a…

大数据技术

4v特点 volume&#xff08;体量大&#xff09; velocity&#xff08;处理速度快&#xff09; variety&#xff08;数据类型多&#xff09; value&#xff08;价值密度低&#xff09; 核心设计理念 并行化 规模经济 虚拟化 分布式系统满足需求 系统架构 大数据处理流程 结构化…

如何在QT6上配置文心一言的接口,从而生成一个自己的对话框

这里写自定义目录标题 前言&#xff1a;效果展示&#xff1a;环境配置&#xff1a;计划完善&#xff1a;核心代码&#xff1a; 前言&#xff1a; 网上有很多在前端调用文心一言接口的&#xff0c;想在QT上配置文心一言的接口&#xff0c;从而生成一个自己的对话框。 效果展示…

Sentinel-1 Level 1数据处理的详细算法定义(九)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程&#xff0c;以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下&…

JavaScript学习文档(10):日期对象、节点操作、 M端事件、JS插件、学生信息表案例

目录 一、日期对象 1、实例化 2、时间对象方法 3、时间戳 &#xff08;1&#xff09;时间戳 &#xff08;2&#xff09;获取时间戳的三种方式&#xff1a; &#xff08;3&#xff09;倒计时效果 二、节点操作 1、DOM 节点 2、 查找节点 3、增加节点 &#xff08;1&…

windows11 上安装了python的wxpython模块,vscode运行时还是报错的解决方法

遇到问题&#xff1a;windows11 上明明安装了python的wxpython模块&#xff0c;vscode运行时还是报错“Traceback (most recent call last): File “c:\pythoncode\new\tonguedetect.py”, line 1, in import wx ModuleNotFoundError: No module named ‘wx’” 如何解决&…

uniapp uni-popup底部弹框留白 底部颜色修改 滚动穿刺

做底部弹框的时候&#xff0c;可能出现以下场景需要处理。 一、出现底部留白不是白色&#xff0c;需要修改颜色的时候&#xff1a; 1、如果弹框不需要圆角效果&#xff0c;则在uni-popup加上背景色就行&#xff0c;弹框是个直角样式&#xff1a; 2、如果需要圆角效果&#xff0…

芒格-“用幸存者心态去对待问题,永远不要有受害者心态”

我不会因为人性而感到意外&#xff0c;也不会花太多时间感受背叛&#xff0c; 我总是低下头去调整自己&#xff0c;去适应这一类事情&#xff0c; 所以我不允许自己花太多时间&#xff0c;去感受背叛&#xff0c; 但凡有一丁点这种想法&#xff0c;从我脑海闪过&#xff0c;我就…

Ubuntu 18.04升级gclibc为2.28版本

一、查看系统支持的 GLIBC 版本号 ​strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_出现以下&#xff0c;说明到2.27版本&#xff0c;没有2.28版本&#xff0c;所以我们需要手动安装 GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_…

Linux环境下的MySQL的卸载、安装与使用[以CentOS7为例说明]

Linux环境下的MySQL的卸载、安装与使用[以CentOS7为例说明] 1、下载MySQL安装包2、卸载MySQL&#xff08;1&#xff09;检查是否安装过MySQL和mariadb&#xff08;2&#xff09;卸载MySQL和mariadb&#xff08;3&#xff09;问题记录&#xff08;了解&#xff09; 3、安装MySQL…

MacOS通过Docker部署MySQL数据库,以及Docker Desktop进行管理

目录 一.不需要持久化存储 1.启动容器 2.查看容器和镜像 3.容器管理 二.持久化存储启动mysql容器 1.创建docker卷 2.运行容器,指定卷 3.在mysql里面随便建个库,建张表,弄点数据 4.停止并删除MySQL容器 5.重新运行容器,并且挂载相同的卷,也就是上面第二步的命令 6.连…

【412】【统计近似相等数对 II】

差130个样例&#xff0c;等佬解 class Solution:def ifqual(self,str1,str2):return int(str1)int(str2)def change(self,str1,str2):str1 list(str1)nlen(str1)t0for i in range(n):for j in range(i1,n):str1[i],str1[j]str1[j],str1[i]t1if self.ifqual("".join…