python每日一题——3最长连续序列
题目
给定一个未排序的整数数组 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
答案
这个问题可以使用哈希表(字典)来解决,时间复杂度为O(n)。
具体思路如下:
遍历整个数组,对于每个数字,将其作为键,出现的位置作为值存入字典。
对于每个数字,在字典中查找它之前的最大数字及其出现的位置。
计算当前数字与之前最大数字之间的距离,并更新最大距离。
返回最大距离加1即为最长数字连续序列的长度。
下面是Python代码实现:
def longestConsecutive(nums): if not nums: return 0 num_dict = {} for i, num in enumerate(nums): if num in num_dict: num_dict[num] = i else: num_dict[num] = i - num max_distance = 0 longest_length = 0 for num in num_dict: if num - num_dict[num] > max_distance: max_distance = num - num_dict[num] longest_length = max_distance + 1 return longest_length
在这个算法中,我们使用字典存储每个数字出现的位置,并计算当前数字与之前最大数字之间的距离。最后返回最长距离加1即可。
相关文章:
python每日一题——3最长连续序列
题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出…...
什么?Postman也能测WebSocket接口了?
01 WebSocket 简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接…...
requests库的学习(详细篇)
一、request库的安装 requests属于第三方库,Python不内置,因此需要我们手动安装。 pip3 install requests...
postgreSQL如何快速查询大表数据量
文章目录 场景方案结果 场景 我有一个非常大的表,估计几百万或者几千万。 我开始使用了 select count(*) from my_table_javapub 方式,查询非常慢。 如何解决??? 方案 如果你需要更快地获取表中的行数,…...
微信小程序内嵌h5页面,实现动态设置顶部标题的功能
一、需求描述 使用HBuilder X作为开发工具,vue作为开发语言,开发微信小程序。微信小程序页面内嵌h5页面,即<web-view></web-view>标签。通过设置不同url连接地址,设置不同的标题。 二、失败做法 页面A嵌入h5页面&a…...
手机IP地址会随位置变化吗
当今社会,手机已经成为人们生活中必不可少的工具之一。然而,许多人对于手机的IP地址是否会随位置的变化而改变感到困惑。在本文中,虎观代理小二二将揭开这个迷团,深入讨论手机IP地址的变化情况,并为您提供详细解答。 首…...
为什么考完软考中级还要考高级呢?
为什么考完软考中级还要考高级呢?软考高级含金量大吗? 根据《计算机技术与软件专业技术资格(水平)考试暂行规定》第十条: “通过考试并获得相应级别计算机专业技术资格(水平)证书的人员,表明其已具备从事…...
03.实现
实现 条款26:尽可能延后变量定义式的出现时间 条款27:尽量少做转型动作 条款28:避免返回handles指向对象内部成分 在C中,handles是指一个指向对象的指针或引用,用于访问该对象的成员函数或成员变量。 而条款28所说…...
可视化大屏时代的到来:智慧城市管理的新思路
随着科技的不断发展,智能芯片作为一种新型的电子元件,被广泛应用于各个领域,其中智慧芯片可视化大屏是一种重要的应用形式。 一、智慧芯片可视化大屏的优势 智慧芯片可视化大屏是一种将智能芯片与大屏幕显示技术相结合的产品,山海…...
Hibernate的三种状态
1.瞬时状态(Transient) 通过new创建对象后,对象并没有立刻持久化,他并未对数据库中的数据有任何的关联,此时java对象的状态为瞬时状态,Session对于瞬时状态的java对象是一无所知的,当对象不再被其他对象引用时…...
React 中 useContext 的用法与性能问题详解
文章目录 一、useContext 是什么?二、useContext 使用场景三、使用步骤1.使用 createContext 创建一个 Context2.使用 Provider 提供值3.使用 useContext 访问 Context完整示例 四、Provider 的 value 类型五、如何在子组件中修改 context 的数据?六、使…...
流程图是什么,用什么软件做?
在工作流程中,经常会遇到需要图形化呈现整个流程的情况。流程图就是一种一目了然的图形化表现方式,便于人们理解、沟通和管理整个流程。 1.Visio Visio是一款微软公司的图表软件,可以用于创建各种类型的流程图、组织结构图、网络图、平面图…...
Linux 家目录和根目录
摘要: 在 Linux 操作系统中,家目录和根目录是两个非常重要的概念。它们是 Linux 文件系统中的两个关键节点,为用户和系统进程提供存储、管理和访问文件和目录的接口。本文旨在深入探讨和理解这两个目录的结构、功能和使用方式,同时…...
js前端跨屏效果
效果: 三个球 源码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>三个球</title> </h…...
配置华为云镜像加速器
登录华为云官网,点击控制台 在服务列表里面寻找swr服务 点击镜像中心,点击镜像加速器 {"registry-mirrors": [ "https://301dc05233c6419b810bdb22135af9eb.mirror.swr.myhuaweicloud.com" ]}配置镜像加速器 vim /etc/docker…...
Redis的四种模式:单机、主从、哨兵、集群
一、简单理解 单机模式:安装你的redis,启动服务即为单机模式。 主从模式:一个主节点搭配一个或多个从节点,无自动故障转移功能,主节点发生故障后,需要人工将其中一个从节点设置为主节点。 哨兵模式&…...
【开源】基于Vue.js的民宿预定管理系统
项目编号: S 058 ,文末获取源码。 \color{red}{项目编号:S058,文末获取源码。} 项目编号:S058,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色…...
网络安全深入学习第九课——本机信息收集
文章目录 一、Windows基本信息收集1、查看当前权限2、查看指定用户的详细信息3、查看用户SID4、查看网卡配置5、查看服务器版本\补丁等6、查看系统架构7、查看安装的软件及版本8、查看本机服务信息9、查询进程信息和列表10、查看启动程序信息11、查看计划任务12、查看主机开机时…...
深入理解C语言指针基础概念:定义、内存地址与声明初始化
导言: 在C语言中,指针是一项强大而重要的概念,直接涉及内存的底层操作。理解指针的基础概念对于熟练运用C语言以及理解底层系统工作原理至关重要。本文将深入研究指针的定义、内存地址的概念以及指针的声明和初始化,帮助读者建立对…...
Django DRF版本号的处理
在restful规范中,后端的API中需要体现版本。如果项目比较大,需要些很多的视图类,在每一个类中都写一遍会比较麻烦,所以drf中也支持了全局配置。在每个版本处理的类中还定义了reverse方法,他是用来反向生成URL并携带相关…...
5分钟极速上手:Revelation光影包带你体验Minecraft电影级画质
5分钟极速上手:Revelation光影包带你体验Minecraft电影级画质 【免费下载链接】Revelation An explorative shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation Revelation光影包是一款基于物理渲染的高性能Mi…...
英雄联盟皮肤自由切换终极指南:R3nzSkin内存换肤技术深度解析
英雄联盟皮肤自由切换终极指南:R3nzSkin内存换肤技术深度解析 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin 你是否曾为英雄联盟中那些炫酷的限定皮肤心动,却因价…...
后量子密码学中的拒绝采样技术及硬件优化
1. 后量子密码学中的拒绝采样技术解析在量子计算快速发展的今天,传统公钥密码体系面临严峻挑战。多变量公钥密码(MPKC)因其基于NP难问题的数学特性,成为最具潜力的后量子密码候选方案之一。QR-UOV作为NIST第二轮数字签名标准候选算…...
别再死记公式了!用Python手写一个Self-Attention,带你彻底搞懂Transformer核心
别再死记公式了!用Python手写一个Self-Attention,带你彻底搞懂Transformer核心 理解Self-Attention机制最有效的方式不是背诵公式,而是亲手实现它。本文将用纯Python从零构建一个完整的Self-Attention层,通过代码逐行解析Q、K、V矩…...
STM32的I2C EEPROM数据老丢?可能是AT24C08的写入时序没搞对(实测避坑)
STM32与AT24C08实战:破解EEPROM数据丢失之谜 最近在调试一个基于STM32的工业数据采集设备时,遇到了一个令人头疼的问题——存储在AT24C08 EEPROM中的关键参数时不时会出现异常。明明写入时一切正常,但下次读取时却变成了乱码或默认值。这种偶…...
把扫雷游戏变成算法题:我是如何用C++向量(vector)和结构体模拟连锁爆炸的
从扫雷游戏到连锁爆炸模拟:C向量与DFS的实战演绎 扫雷游戏背后的连锁爆炸机制,本质上是一个典型的图遍历问题。当我在蓝桥杯竞赛中遇到类似题目时,发现用C的vector和结构体配合深度优先搜索(DFS),可以完美模拟这种连锁反应。本文将…...
多模态AI技术解析:从原理到行业应用实践
1. 多模态AI的本质与行业变革当GPT-4可以同时解读图片里的餐厅账单和文字点评,当自动驾驶系统能融合激光雷达点云和交通标志语义时,我们正在见证AI从"单感官"到"全感知"的进化。作为从业者,我认为多模态不是简单的技术叠…...
Marp架构深度解析:构建现代化Markdown演示文稿的技术实现方案
Marp架构深度解析:构建现代化Markdown演示文稿的技术实现方案 【免费下载链接】marp The entrance repository of Markdown presentation ecosystem 项目地址: https://gitcode.com/gh_mirrors/mar/marp Marp(Markdown Presentation Ecosystem&am…...
Mac微信防撤回插件:专业级消息保护方案
Mac微信防撤回插件:专业级消息保护方案 【免费下载链接】WeChatIntercept 微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 微信消息撤回功能虽然保护了发…...
DTLS 1.3中MAC聚合技术解析与物联网安全优化
1. DTLS 1.3中MAC聚合技术的深度解析在物联网和工业互联网快速发展的今天,无线通信的安全性和效率问题日益突出。作为保障数据完整性的核心技术,消息认证码(MAC)在DTLS 1.3协议中扮演着关键角色。然而,传统的每消息附加…...
