【LeetCode每日一题】——128.最长连续序列

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【题目提示】
  • 七【解题思路】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 哈希表

二【题目难度】

  • 中等

三【题目编号】

  • 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 < = n u m s . l e n g t h < = 1 0 5 0 <= nums.length <= 10^5 0<=nums.length<=105
  • − 1 0 9 < = n u m s [ i ] < = 1 0 9 -10^9 <= nums[i] <= 10^9 109<=nums[i]<=109

七【解题思路】

  • 利用哈希表的思想
  • 首先将数组中的元素加入哈希表中,这么做的目的是去重,并且为了方便后续的计算
  • 然后遍历哈希表中的每个元素,计算从这个元素开始的连续数组,通过哈希表进行扫描就可以
  • 这样我们就只使用了 O ( n ) O(n) O(n)的时间复杂度解决这个问题
  • 最后返回结果即可

八【时间频度】

  • 时间复杂度: O ( n ) O(n) O(n) n n n为传入的数组的长度
  • 空间复杂度: O ( n ) O(n) O(n) n n n为传入的数组的长度

九【代码实现】

  1. Java语言版
class Solution {public int longestConsecutive(int[] nums) {HashSet<Integer> map = new HashSet<>();for(int i = 0;i < nums.length;i++){map.add(nums[i]);}int res = 0;for(int num : map){if(!map.contains(num - 1)){int curNum = num;int curLen = 1;while(map.contains(curNum + 1)){curNum += 1;curLen += 1;}res = Math.max(res, curLen);}}return res;}
}
  1. C语言版
struct HashNode
{int key;UT_hash_handle hh;
};int longestConsecutive(int* nums, int numsSize)
{struct HashNode* map = NULL;struct HashNode* tempNode = NULL;for(int i = 0;i < numsSize;i++){HASH_FIND_INT(map, &nums[i], tempNode);if(tempNode == NULL){struct HashNode* newNode = (struct HashNode*)malloc(sizeof(struct HashNode));newNode->key = nums[i];HASH_ADD_INT(map, key, newNode);}}struct HashNode *val, *temp;int res = 0;HASH_ITER(hh, map, val, temp){if(val != NULL){int lastVal = val->key - 1;HASH_FIND_INT(map, &lastVal, tempNode);if(tempNode == NULL){int curNum = val->key + 1;int curLen = 1;HASH_FIND_INT(map, &curNum, tempNode);while(tempNode != NULL){curNum += 1;curLen += 1;HASH_FIND_INT(map, &curNum, tempNode);}res = fmax(res, curLen);}}}HASH_ITER(hh, map, val, temp){HASH_DEL(map, val);free(val);}return res;
}
  1. Python语言版
class Solution:def longestConsecutive(self, nums: List[int]) -> int:map = set(nums)res = 0for num in map:if num - 1 not in map:curNum = numcurLen = 1while curNum + 1 in map:curNum += 1curLen += 1res = max(res, curLen)return res
  1. C++语言版
class Solution {
public:int longestConsecutive(vector<int>& nums) {unordered_set<int> map;for(int i = 0;i < nums.size();i++){map.insert(nums[i]);}int res = 0;for(const int& num : map){if(!map.count(num - 1)){int curNum = num;int curLen = 1;while(map.count(curNum + 1)){curNum += 1;curLen += 1;}res = max(res, curLen);}}return res;}
};

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

  4. C++语言版
    在这里插入图片描述

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

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

相关文章

vue3+element-plus表格默认排序default-sort失效问题

场景 在使用动态数据渲染的场景&#xff0c;el-table设置默认属性default-sort失效。 原因 el-table的default-sort属性是针对静态数据的&#xff0c;如果是动态数据&#xff0c;default-sort则无法监听到。 案例&#xff1a;静态数据 <template><el-table:data&…

马斯克又出昏招、最疯狂的举动之一

马斯克正在限制他不喜欢的新闻网站和竞争对手的流量。在 X&#xff08;原 Twitter&#xff09;上点击纽约时报、路透社、Facebook、Instagram、Threads、Bluesky 和 Substack 的链接&#xff0c;X 故意增加 5 秒钟的开启延迟。 5 秒延迟&#xff0c;新的降权举措&#xff1f; …

联想拯救者笔记本Win11系统键盘无法打字解决参考方法

一位好机友新购买的联想拯救者笔记本在使用过程中突然发现整个键盘都不能使用了、不能打字、按任何按键都没有反应&#xff0c;只有鼠标能正常操作&#xff1b;那么这是什么问题呢&#xff1f;能不能是笔记本的键盘坏了呢&#xff1f;还是笔记本出现了什么故障而引起键盘失灵呢…

LangChain手记 Evalutation评估

整理并翻译自DeepLearning.AILangChain的官方课程&#xff1a;Evaluation&#xff08;源代码可见&#xff09; 基于LLM的应用如何做评估是一个难点&#xff0c;本节介绍了一些思路和工具。 “从传统开发转换到基于prompt的开发&#xff0c;开发使用LLM的应用&#xff0c;整个工…

Linux 终端会话中,启动任务并放到后台运行

一、需求 linux要执行一个脚本&#xff0c;耗时很长&#xff0c;想要脚本在后台运行&#xff0c;用户注销或终端软件关闭时也可以继续运行。 二、实现 1、nohup命令 脚本在后台运行 nohup 是在 Linux 和类 Unix 系统中使用的一个命令&#xff0c;用于在后台运行程序&#x…

Python爬虫——scrapy_当当网图书管道封装

创建爬虫项目 srcapy startproject scrapy_dangdang进入到spider文件里创建爬虫文件&#xff08;这里爬取的是青春文学&#xff0c;仙侠玄幻分类&#xff09; srcapy genspider dang http://category.dangdang.com/cp01.01.07.00.00.00.html获取图片、名字和价格 # 所有的se…

c语言——查找特定字符在字符串中出现的次数

fgets 函数用于从标准输入&#xff08;stdin&#xff09;中读取一行字符串&#xff0c; 并将其存储在指定的字符数组 str 中。 sizeof str/sizeof str[0] 是用来计算字符数组 str 的大小。 这个表达式计算的结果是字符数组 str 可以容纳的元素个数&#xff08;包括…

【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树

一、驱动程序分离的思想 【IMX6ULL驱动开发学习】05.字符设备驱动开发模板&#xff08;包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区&#xff09;_阿龙还在写代码的博客-CSDN博客 之前编写驱动程序的代码存在不少弊端&#xff1a;移植性差…

数学建模之“聚类分析”原理详解

一、聚类分析的概念 1、聚类分析&#xff08;又称群分析&#xff09;是研究样品&#xff08;或指标&#xff09;分类问题的一种多元统计法。 2、主要方法&#xff1a;系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。这里主要介绍系统聚类法…

【脚踢数据结构】队列(顺序和链式)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言,Linux基础,ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的一句鸡汤&#x1f914;&…

Ant Design Vue 下拉框输入框 可以输入 可以查询

Ant Design Vue 下拉框 可以输入 可以查询 直接上代码 效果图 &#xff08;输入内容查询后端 返回下拉的值 &#xff0c;如何查询后端是空的直接 把输入的内容 赋值给 输入框&#xff09; 在这里插入图片描述 <template><div><a-selectv-model.lazy"i…

WPF CommunityToolkit.Mvvm

文章目录 前言ToolkitNuget安装简单使用SetProperty&#xff0c;通知更新RealyCommandCanExecute 新功能&#xff0c;代码生成器ObservablePropertyNotifyCanExecuteChangedForRelayCommand其他功能对应关系 NotifyPropertyChangedFor 前言 CommunityToolkit.Mvvm&#xff08;…

自适应AI chatgpt智能聊天创作官网html源码

我们致力于开发先进的自适应AI智能聊天技术&#xff0c;旨在为用户提供前所未有的聊天体验。通过融合自然语言处理、机器学习和深度学习等领域的顶尖技术&#xff0c;我们的智能聊天系统能够准确理解用户的需求并给出相应的回应。 我们的自适应AI智能聊天系统具备以下核心特点…

fiddler抓包问题记录,支持https、解决 tunnel to 443

fiddler下载安装步骤及基本配置 fiddler抓包教程&#xff0c;如何抓取HTTPS请求&#xff0c;详细教程 可能遇到的问题及解决方案 1. 不能正常访问页面&#xff08;所有https都无法访问&#xff09; 解决方案&#xff1a;查看下面配置是否正确 Rules-customization 找到 OnB…

【推荐】深入浅出学习Spring框架【中】

目录 1.AOP是什么? 2.案列&#xff1a; 3.spring的aop的专业术语 4.代码模拟 4.1 前置通知 3.2.后置通知 3.3.环绕通知 3.4.异常通知 3.5.过滤通知 1.AOP是什么? 面向切面编程&#xff08;Aspect-Oriented Programming&#xff09;是一种编程范式&#xff0c;它的主要…

第十四届中国大学生服务外包大赛细品,上百支队伍与合合信息用AI共克“记账”难题

前言 熟悉我的小伙伴应该知道我在大学时期参与了很多竞赛&#xff0c;我向来对比赛是比较热枕的&#xff0c;以我个人观点&#xff0c;我认为可以通过竞赛激发学习激情和检验自己的技能水平掌握情况&#xff0c;大学生很少有机会能够了解到课堂之外市场的需求&#xff0c;外包…

P1123 取数游戏

取数游戏 题目描述 一个 N M N\times M NM 的由非负整数构成的数字矩阵&#xff0c;你需要在其中取出若干个数字&#xff0c;使得取出的任意两个数字不相邻&#xff08;若一个数字在另外一个数字相邻 8 8 8 个格子中的一个即认为这两个数字相邻&#xff09;&#xff0c;求…

EXCEL按列查找,最终返回该列所需查询序列所对应的值,VLOOKUP函数

EXCEL按列查找&#xff0c;最终返回该列所需查询序列所对应的值 示例&#xff1a;国标行业分类汉字&#xff0c;匹配id 使用VLOOKUP函数 第一参数&#xff1a;拿去查询的值。 第二参数&#xff1a;匹配的数据。 Ps&#xff1a;Sheet1!$C 21 : 21: 21:E 117 &#xff0c;需要…

Redis系列(三):深入解读Redis主从同步机制

首发博客地址 https://blog.zysicyj.top/ Redis高可靠靠什么保证&#xff1f; 为什么要提这个呢&#xff0c;因为Redis主从库目的呢其实就是为了实现高可靠。上篇文章中我们说过Redis的AOF、RDB日志其实就是为了减少数据丢失&#xff0c;这是高可靠的一部分。 这篇文章呢&#…

Lua 位和字节

一、位运算 从 Lua 5.3 版本开始&#xff0c;提供了针对数值类型的一组标准位运算符&#xff0c;与算数运算符不同的是&#xff0c;运算符只能用于整型数。 运算符描述&按位与|按位或&#xff5e;按位异或>>逻辑右移<<逻辑左移&#xff5e;&#xff08;一元运…