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

【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++语言版
    在这里插入图片描述

相关文章:

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

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 中等 三【题目编号】 128.最长连续序列 四【题目描述】 给定一个未…...

Redis_缓存1_缓存类型

14.redis缓存 14.1简介 穿透型缓存&#xff1a; 缓存与后端数据交互在一起&#xff0c;对服务端的调用隐藏细节。如果从缓存中可以读到数据&#xff0c;就直接返回&#xff0c;如果读不到&#xff0c;就到数据库中去读取&#xff0c;从数据库中读到数据&#xff0c;也是先更…...

模拟 枚举

分享牛客算法基础精选题单题目打卡!!! 目录 字符串的展开 多项式输出 机器翻译 : 铺地毯 : [NOIP2016]回文日期 字符串的展开 原题链接 : 字符串的展开 思路 : 模拟 代码 : #include<iostream> #include<cstring> #include<algorithm> using na…...

【实操】2023年npm组件库的创建发布流程

2022年的实践为基础&#xff0c;2023年我再建一个组件库【ZUI】。步骤回顾&#xff1a; 2022年的npm组件包的发布删除教程_npm i ant-design/pro-components 怎么删除_啥咕啦呛的博客-CSDN博客 1.在gitee上创建一个项目,相信你是会的 2.创建初始化项目&#xff0c;看吧&#…...

缓存设计的典型方案

缓存设计的典型方案 在使用缓存系统的时候&#xff0c;还需要考虑缓存设计的问题&#xff0c;重点在于缓存失效时的处理和如何更新缓存。 缓存失效是在使用缓存时不得不面对的问题。在业务开发中&#xff0c;缓存失效时由于找不到整个数据&#xff0c;一般会出于容错考虑&#…...

SQL笔记

最近的工作对SQL的应用程度较高&#xff0c;而且写的sql类型基本没怎么涉及过&#xff0c;把用到的几个关键字记录下。 使用环境&#xff1a;达梦数据库 达梦数据库有个特点&#xff0c;他有一个叫模式的说法&#xff0c;在图形化工具里直接点击创建查询窗口&#xff0c;不用像…...

UHPC的疲劳计算——兼论ModelCode2010的适用性

文章目录 0. 背景1、结论及概述2、MC10对于SN曲线的调整&#xff08;囊括NC、HPC、UHPC&#xff09;2.1 疲劳失效曲面的构建2.2 新模型的验证 3、MC10对于疲劳设计强度的调整及其背后的原因4. 结语 0. 背景 今年年初&#xff0c;有一位用UHPC做混凝土塔筒的同行告诉我&#xf…...

关于elementui的input的autocomplete的使用

项目中需要实现搜索框搜索时能自动提示可选项的功能&#xff0c;elementui的input组件有已经封装好的el-autocomplete可以使用&#xff0c;但是在使用中发现一些问题&#xff0c;记录一下 基础使用 // html部分 <el-autocompletev-model"name":fetch-suggestion…...

即然利用反射机制可以破坏单例模式,有什么方法避免呢?

私有构造方法中添加防止多次实例化的逻辑&#xff1a;在单例类的私有构造方法中&#xff0c;可以添加逻辑来检查是否已经存在实例&#xff0c;如果存在则抛出异常或返回已有的实例。这样即使通过反射创建了新的实例&#xff0c;也能在构造方法中进行拦截。 使用枚举实现单例&a…...

【IDEA问题】下载不了源代码

引出问题 最近不知道怎么打开 IDEA&#xff0c;本想查看源代码&#xff0c;然后点击下载源码&#xff0c;总是报找不到此对象的源代码。百度找了半天&#xff0c;GPT问了半天还是解决不了&#xff0c;直到遇到了这篇&#xff1a;idea中无法下载源码问题解决&#xff0c;终于得…...

代码随想录第四十八天

代码随想录第四十八天 Leetcode 198. 打家劫舍ILeetcode 213. 打家劫舍 IILeetcode 337. 打家劫舍 III Leetcode 198. 打家劫舍I 题目链接: 打家劫舍I 自己的思路:想不太出来递推公式&#xff01;&#xff01;&#xff01;&#xff01; 正确思路:这个题主要是看是否偷第下标为…...

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类

书写自动智慧&#xff1a;探索Python文本分类器的开发与应用&#xff1a;支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类 文本分类器&#xff0c;提供多种文本分类和聚类算法&#xff0c;支持句子和文档级的文本分类任务&#xff0c;支持二分类、多分类、多标签分类…...

前端Webpack面试题

1.说说你对webpack的理解 ​ 开发时&#xff0c;我们会使用框架 (React、Vue) &#xff0c;ES6 模块化语法&#xff0c;Less/Sass 等 CSS 预处理器等语法进行开发&#xff0c;这样的代码要想在浏览器运行必须经过编译成浏览器能识别的 JS、CSS语法才能运行。所以我们需要打包工…...

LabVIEW使用边缘检测技术实现彩色图像隐写术

LabVIEW使用边缘检测技术实现彩色图像隐写术 隐写术是隐藏信息的做法&#xff0c;以隐瞒通信的存在而闻名。该技术涉及在适当的载体&#xff08;如图像&#xff0c;音频或视频&#xff09;中插入秘密消息。在这些载体中&#xff0c;数字图像因其在互联网上的广泛使用而受到青睐…...

第一次参加计算机会议报告注意事项以及心得

计算机会议参会报告 注意事项参会前参会中参会后 参会心得 注意事项 接下来的会议注意事项分为&#xff1a;&#xff08;1&#xff09;参会前&#xff0c;&#xff08;2&#xff09;参会中&#xff0c;&#xff08;3&#xff09;参会后 参会前 参会前&#xff0c;一般被邀请…...

TypeScript教程(二)基础语法与基础类型

一、基础语法 TypeScript由以下几个部分组成 1.模块 2.函数 3.变量 4.语句和表达式 5.注释 示例&#xff1a; Runoob.ts 文件代码&#xff1a; const hello : string "Hello World!" console.log(hello) 以上代码首先通过 tsc 命令编译&#xff1a; tsc …...

问道管理:网上如何打新股?

随着资本市场的不断敞开&#xff0c;越来越多的人开始重视股票市场&#xff0c;并想经过网上打新股来取得更大的出资收益。但是&#xff0c;网上打新股的办法并不简略&#xff0c;怎样才能成功地打新股呢&#xff1f;本文将从多个角度剖析&#xff0c;协助广阔出资者处理这一问…...

重磅更新,HertzBeat 集群版发布,易用友好的开源实时监控系统!

什么是 HertzBeat? HertzBeat 赫兹跳动 是一个拥有强大自定义监控能力&#xff0c;高性能集群&#xff0c;无需 Agent 的开源实时监控告警系统。 特点 集 监控告警通知 为一体&#xff0c;支持对应用服务&#xff0c;数据库&#xff0c;操作系统&#xff0c;中间件&#xf…...

.NET6使用微信小程序授权登录,获取手机号

1.在appsettings配置你的小程序配置信息 //微信小程序信息配置"WechatConfig": {"appid": "", //小程序ID"secret": "" //小程序秘钥},2.请求接口时先获取Access_token #region 获取小程序的Access_tokenpublic object GetA…...

游戏类APP如何提升用户的活跃度?

移动游戏行业&#xff0c;追求使用率的营销能发挥强大的功效&#xff0c;可帮助减少玩家流失、追回流失的玩家、提高活跃玩家所带来的价值以及增加付费玩家贡献的收入。 一、了解玩家需求 想要提升玩家的活跃&#xff0c;首先要知道&#xff0c;玩家喜欢玩哪些平台的游戏&…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...