LeetCode热题100——最长连续序列

news2024/11/24 1:00:29

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

class Solution(object):
    def longestConsecutive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums_s = sorted(set(nums))

        tol = 1
        s1 = set()

        if len(nums_s)==0:
            tol = 0

        for i in range(len(nums_s)-1):
            if nums_s[i]+1==nums_s[i+1]:
                tol+=1
            else:
                s1.add(tol)
                tol=1
        s1.add(tol)
        return max(s1)

 

 思路为首先创建了一个集合num_set来存储数组中的数字,以便快速查找。然后,它遍历集合中的每个数字,并检查它是否是当前连续序列的最小值(即num-1不在集合中)。如果是,它就从这个数字开始,向上查找连续序列,并更新最长连续序列的长度。最后,它返回最长连续序列的长度。

还有其他解决方法:

思路:

先对数组排序,在排序的数组中遍历

方法:

定义集合set1,计数器count。对排序完的集合进行遍历,如果元素相邻,count+1;如果不相邻,count存入set1,清空set1。 注意:1)遇到相邻元素相等,应该跳过本次循环 2)循环结束再把count存入set1

 

class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        set1=set()
        count=1
        nums=sorted(nums)
        if len(nums)==0 or len(nums)==1:
            return 0 if len(nums)==0 else 1
        for i in range(1,len(nums)):
            if nums[i]==nums[i-1]+1:
                count+=1
            elif nums[i]==nums[i-1]:
                continue
            else:
                set1.add(count)
                count=1
        set1.add(count)    
        return max(set1)

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

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

相关文章

将文本嵌入和知识(图)嵌入结合在RAG系统中

在我的以前的文章中,我写了关于如何将知识图谱与 RAGs 结合使用,以及如何使用图技术进行自适应标记化以构建更具上下文意识的LLMs。在本文中,我很高兴地介绍了我结合文本嵌入和知识(图)嵌入进行实验以及对RAG性能的观察…

云3D渲染:深度剖析技术原理、优势及其在各行业的广泛应用

云3D渲染技术,在数字化转型的大潮中,以其显著的优势和广阔的应用潜力,正在深刻地重塑多个行业的未来。它不仅为电影特效、建筑设计、游戏开发和虚拟现实等领域注入了前所未有的视觉震撼,还促进了创意思维与前沿技术的紧密结合&…

无人机无刷电机理论教学培训课程

本文档为一份关于Brushless电机理论的详细教程,由TYTO Robotics编制,旨在帮助用户理解brushless电机的工作原理、特性以及如何通过实验测定其关键参数Kv和Kt。文档首先介绍了brushless电机的基本组成,包括静止的定子和旋转的转子,…

单目标应用:基于鳗鱼和石斑鱼优化器(Eel and grouper optimizer,EGO)的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献: [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、鳗鱼和石斑鱼优化器求解微电网 2.1算法简介 鳗鱼和石斑鱼优化器&…

跟我从零开始学C++(C++代码基础)5

引言 小伙伴们,在经过一些基础定义和指针,数组,函数的洗礼后,我相信大家肯定都已经对C编程有了新的认知,同时呢,坚持下来的小伙伴们肯定都是好样的,大家都是很棒的,现在我们来学一学…

亚马逊运营专词(二)

1. A页面:亚马逊A页面即图文版商品详情页面,可以通过A页面使用不同的方式来描述商品特征,例如在页面中添加品牌故事、产品图片、产品文字介绍等,进一步完善页面。但目前A页面只对在亚马逊上注册了品牌的商家开放。 2. 跟卖&#x…

python操作服务器

一:使用 paramiko 进行SSH连接 首先确保已安装paramiko库:pip install paramiko 代码示例 在这里插入代码片import paramikohostname hostname username user password passwdclient paramiko.SSHClient() client.set_missing_host_key_policy(par…

突破内存限制:Jamba模型的高效文本处理能力

在当今信息爆炸的时代,处理和理解海量文本数据的需求日益增长。自然语言处理(NLP)领域的研究者们一直在探索如何构建更高效、更强大且更灵活的语言模型来应对这一挑战。然而,现有的大型语言模型,尤其是基于Transformer…

物联网“此用户无权修改接入点名称设置”解决方案

根本原因apns-conf.xml里面没有 符合 物理网卡 的配置 可以先加一个APN试一下,看看默认的MCC和MNC是什么 然后在”命令行“查询一下 adb shell sqlite3 /data/user_de/0/com.android.providers.telephony/databases/telephony.db "select * from carriers wh…

基于Java技术的在线学习平台系统

开头语:你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术,基于SpringBoot框架 工具:Eclipse、Navicat、M…

Arduino - 按钮 - 长按短按

Arduino - Button - Long Press Short Press Arduino - 按钮 - 长按短按 Arduino - Button - Long Press Short Press We will learn: 我们将学习: How to detect the button’s short press 如何检测按钮的短按How to detect the button’s long press 如何检测…

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…

boss直聘招聘数据可视化分析

boss直聘招聘数据可视化分析 一、数据预处理二、数据可视化三、完整代码一、数据预处理 在 上一篇博客中,笔者已经详细介绍了使用selenium爬取南昌市web前端工程师的招聘岗位数据,数据格式如下: 这里主要对薪水列进行处理,为方便处理,将日薪和周薪的数据删除,将带有13薪…

迁移学习——CycleGAN

CycleGAN 1.导入需要的包2.数据加载(1)to_img 函数(2)数据加载(3)图像转换 3.随机读取图像进行预处理(1)函数参数(2)数据路径(3)读取文…

数据结构——带头双向循环链表(c语言实现)

目录 1.单链表和双向链表对比 2.双向链表实现 2.1 创建新节点 2.2 链表初始化 2.3 尾插 2.4 头插 2.5 尾删 2.6 头删 2.7 查找 2.8 指定位置后插入数据 2.9 删除指定节点 2.10 销毁链表 2.11 打印链表 前言: 我们在前几期详细地讲解了不带头单…

EthernetIP IO从站设备数据 转opc ua项目案例

1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC&#xff0…

day41--Redis(三)高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id]长度不超过…

STM32音频应用开发:DMA与定时器的高效协作

摘要: 本文章将深入浅出地介绍如何使用STM32单片机实现音频播放功能。文章将从音频基础知识入手,逐步讲解音频解码、DAC转换、音频放大等关键环节,并结合STM32 HAL库给出具体的代码实现和电路设计方案。最后,我们将通过一个实例演示如何播放W…

FPGA SATA高速存储设计

今天来讲一篇如何在fpga上实现sata ip,然后利用sata ip实现读写sata 盘的目的,如果需要再速度和容量上增加,那么仅仅需要增加sata ip个数就能够实现增加sata盘,如果仅仅实现data的读写整体来说sata ip设计比较简单,下面…

大模型产品的“命名经济学”:名字越简单,产品越火爆?

文 | 智能相对论 作者 | 陈泊丞 古人云:赐子千金,不如教子一艺;教子一艺,不如赐子一名。 命名之妙,玄之又玄。 早两年,大模型爆火,本土厂商在大模型产品命名上可谓下足了功夫,引…