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

题目链接:128. 最长连续序列 - 力扣(LeetCode)

暴力破解

class Solution {
public:int longestConsecutive(vector<int>& nums) {set<int> nums_set; //无序存储,基本操作的复杂度大多为常数级for(const int num:nums){nums_set.insert(num);}int longestStreak = 0;auto it = nums_set.begin();int last_num = *it;int currentStreak = 1;it ++;for (; it != nums_set.end(); it++){if((*it) == (last_num + 1)){currentStreak++;}else{currentStreak = 1;}longestStreak = longestStreak < currentStreak?currentStreak : longestStreak;last_num = (*it); }return longestStreak;}
};

思路:哈希表

class Solution {
public:int longestConsecutive(vector<int>& nums) {unordered_set<int> nums_set; //无序存储,基本操作的复杂度大多为常数级for(const int num:nums){nums_set.insert(num);}int longestStreak = 0;for(int num : nums_set){if(nums_set.count(num - 1) == 0){ //它返回元素在集合中出现的次数。set容器仅包含唯一元素,因此只能返回1或0int currentNum = num;int currentStreak = 1;while(nums_set.count(currentNum + 1)){currentNum ++;currentStreak ++;}longestStreak = longestStreak < currentStreak ? currentStreak : longestStreak;}}return longestStreak;}
};

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

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

相关文章

高效学习:从最适合自己的地方学习

1&#xff09;一个人的学习行为&#xff0c;其实就是对新事物的认知由浅入深的过程。在这个过程中&#xff0c;一个人要高效地进行这个过程需要什么呢&#xff1f;全神贯注&#xff0c;反复琢磨。 2&#xff09;有什么东西能够让自己全神贯注&#xff0c;不惜反复琢磨&#xff…

Compose UI 之 Card 卡片组件

Card Card 是用于显示带有圆角和可选阴影的矩形内容容器。它通常用于构建用户界面,并可以包含标题、文本、图像、按钮等元素,表示界面上的可交互元素,我们称它是 “卡片”。 Card 使用的一些经典的场景: 列表数据,例如 新闻列表,产品列表等。信息提示框,使用 Card 组件…

一起学习python——基础篇(13)

前言&#xff0c;python编程语言对于我个人来说学习的目的是为了测试。我主要做的是移动端的开发工作&#xff0c;常见的测试主要分为两块&#xff0c;一块为移动端独立的页面功能&#xff0c;另外一块就是和其他人对接工作。 对接内容主要有硬件通信协议、软件接口文档。而涉…

windows软件在更新的时候,会自动找到旧版本软件的位置,这个功能如何实现 ?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

从零开始的LeetCode刷题日记:383. 赎金信

一.相关链接 题目链接&#xff1a;383. 赎金信 二.心得体会 这道题是非常简单&#xff0c;和242.有效的字母异位词基本一致&#xff0c;区别在于这里需要比较出现的次数&#xff0c;仅此而已。 三.代码 class Solution { public:bool canConstruct(string ransomNote, str…

root@localhost‘s password: Permission denied, please try again.

编辑、etc/ssh/sshd_config文件 ,将PermitRootLogin这行改为yes rootubuntu:/home/ubuntu# vim /etc/ssh/sshd_config 重新加载改文件 /etc/init.d/ssh restart

AI防关联引流系统:解锁TikTok全球流量密码 轻松驾驭全球流量

TikTok的风潮席卷全球&#xff0c;吸引了无数运营者的目光。在这个崭新的出海风口&#xff0c;每一位创作者都渴望脱颖而出。而在这其中&#xff0c;掌握并运用各种TikTok运营工具无疑是一把利剑&#xff0c;能够帮助我们披荆斩棘&#xff0c;事半功倍。 在众多运营工具中&…

高新技术企业上市要达到什么条件

企业在申请高新技术企业认定前要开展自我评价&#xff0c;符合条件才向认定机构提出认定申请。高新技术企业生存环境逐渐优化&#xff0c;上市条件逐渐成熟。民营高新技术企业有它独特的特点和财务问题。那么&#xff0c;高新技术企业上市要达到的条件&#xff1f; 一、高新技…

element的el-table表格自定义表头解决数据不更新问题

场景&#xff1a; 需要生成一个表格&#xff0c;表头由后端返回&#xff0c;自定义生成。 问题&#xff1a; 通过插槽传入表头&#xff0c;但是&#xff0c;如果我把表头初始值赋值为null&#xff0c;虽然可以正常显示表头&#xff0c;但是一开始会报错&#xff1b;如果我把表…

小白学习python的路线

学习 Python 对于初学者来说是一个很好的选择&#xff0c;因为它易于学习、语法简洁&#xff0c;并且有丰富的库和应用场景。以下是一个小白学习 Python 的推荐路线&#xff1a; 1. 基础知识 - "安装 Python": 首先从官方网站 [python.org](https://www.python.org…

策略模式类图与代码

某大型购物中心欲开发一套收银软件&#xff0c;要求其能够支持购物中心在不同时期推出的各种促销活动&#xff0c;如打折、返利(例如&#xff0c;满300返100),等等。现采用策略(Strategy)模式实现该要求&#xff0c;得到如图7.13 所示的类图。 【Java 代码】 import java.util…

IIS中部署netcore程序出现500错误如何处理?

500错误在IIS部署中经常出现&#xff0c;但是解决非常耗时 官方也有给出一些指引&#xff0c;但是无法解决根本问题 建议检查netcore相关组件是否正确安装&#xff0c;如下&#xff1a; aspnetcore-runtime-3.1.32-win-x64 dotnet-hosting-3.1.32-win dotnet-runtime-3.1.…

postgresql或者opengauss中查询表的描述

在使用postgresql数据库&#xff0c;或者opengauss数据库时&#xff0c;如果要通过模式名&#xff08;schema&#xff09;和表名&#xff08;table&#xff09;&#xff0c;查询表的描述信息&#xff0c;可以使用下面的SQL&#xff1a; select pt.schemaname, pt.tablename ,p…

软件设计模式之解释器模式

一、引言 在软件设计中&#xff0c;我们经常遇到需要“解释”和执行某种特定语法或语言的情况。这时&#xff0c;解释器模式就派上了用场。解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;它提供了一种解释语言的语法并定义一个句子如何…

【域适应】基于迁移成分分析(TCA) 的典型二分类问题(python)

关于 传统迁移成分分析&#xff0c;区别于深度迁移学习&#xff0c;是一种常规的对特征数据进行对齐的一种技术。 广泛应用于&#xff0c;两个域&#xff08;源域&#xff0c;目标域&#xff09;数据特征分布不一致&#xff0c;需要实现目标域数据分析任务中。 文章参考&…

大话设计模式——21.中介者模式(Mediator Pattern)

简介 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互 UML图 应用场景 大量的连接使得一个对象不可能在没有其他对象的支持下工作&#xff0c;系统表现为一个不可分割的…

C++:重载函数

目录 重载函数的概念 重载函数展现 重载函数的分类 1.参数个数不同 2.参数的类型不同 3. 类型的顺序不同 函数的返回值类型与函数的重载无关 重载函数的概念 函数重载:是函数的一种特殊情况&#xff0c;C允许在同一作用域中声明几个功能类似的同名函数&#xff0c;这些同…

c++之旅第九弹——模版

大家好啊&#xff0c;这里是c之旅第九弹&#xff0c;跟随我的步伐来开始这一篇的学习吧&#xff01; 如果有知识性错误&#xff0c;欢迎各位指正&#xff01;&#xff01;一起加油&#xff01;&#xff01; 创作不易&#xff0c;希望大家多多支持哦&#xff01; 一.模版的概念…

Spark面试整理-解释Spark Streaming是什么

Spark Streaming是Apache Spark的一个组件,它用于构建可扩展、高吞吐量、容错的实时数据流处理应用。Spark Streaming使得可以使用Spark的简单编程模型来处理实时数据。以下是Spark Streaming的一些主要特点: 1. 微批处理架构 微批处理:Spark Streaming的核心是微批处理模型…

3D开发工具HOOPS:推动汽车行业CAD可视化发展

在最近的行业对话中&#xff0c;Tech Soft 3D&#xff08;HOOPS厂商&#xff09;的Jonathan Girroir和Actify的Peter West探讨了CAD可视化在当代企业中的重要性和挑战。作为CAD可视化领域的佼佼者&#xff0c;Actify通过其广受欢迎的Spinfire应用&#xff0c;赋能了全球40多个国…