【刷题日记】最长连续序列

题目描述

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

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

实现思路

核心要素两点:
1、当前元素的前驱是否在这个数组中,如果在,跳过这个执行下一个元素的判断
2、当前元素的前驱不在,这个数字是开始的一个前驱,需要从这个数字向后遍历,用while循环判断是否在数组中有依序的后继元素

代码实现

class Solution {public int longestConsecutive(int[] nums) {HashSet<Integer> set = new HashSet<>();for(int i=0; i< nums.length; i++){set.add(nums[i]);}int maxLength = 0;//去重int []tmp = new int[nums.length];int current ;for(int i=0; i< nums.length ; i++){if(!set.contains(nums[i] - 1)){tmp[i] = 1;current = nums[i];while (set.contains(current+1)){tmp[i] += 1;current = current+1;}if(tmp[i] > maxLength){maxLength = tmp[i];}}}return maxLength;}
}通过运行## 题目总结
这道题需要一个讨巧的思维转换,防止每次新节点重复执行,没有利用上连续的这个线索

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

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

相关文章

ABtest假设检验知识|配对检验|比率检验|单向表-列联表检验

文章目录 1 假设检验基础2 一般假设检验2.1 假设检验包2.2 sample - 点击转化率2.2.1 问题描述2.2.2 实验设计2.2.3 数据处理2.2.4 方差齐性检验2.2.5 假设检验2.2.6 结果分析 3 检验两个均值的差&#xff1a;配对3.1 大样本检验3.1.1 单侧检验3.1.2 双侧检验 3.2 小样本检验3.…

【大模型】(记一面试题)使用Streamlit和Ollama构建PDF文件处理与聊天机器人应用

【大模型】(记一面试题)使用Streamlit和Ollama构建PDF文件处理与聊天机器人应用 我在找工作的过程中&#xff0c;遇到一个面试题&#xff1a;搭建一个简易的利用大型 LLM 和 RAG 来实现用户与PDF文件的自然语言交互。 参考链接&#xff1a;https://medium.com/the-ai-forum/ra…

深入理解软件测试:单元测试、集成测试与系统测试

软件测试是软件开发过程中至关重要的一环&#xff0c;旨在确保软件产品的质量和可靠性。根据测试的范围和目标&#xff0c;软件测试可以分为不同的层次和类型&#xff0c;其中最常见的包括单元测试、集成测试和系统测试。下面详细介绍这三种测试类型。 ### 1. 单元测试&#x…

【Python】—— 高阶函数

目录 &#xff08;一&#xff09;体验高阶函数 &#xff08;二&#xff09;内置高阶函数 2.1 map(&#xff09; 2.2 reduce() 2.3 filter() Python中的高阶函数是指那些接受函数作为参数&#xff0c;或者返回函数作为结果的函数。这种特性让Python的函数编程能力非常强大&…

三生随记——关于工地的恐怖故事

夜色中&#xff0c;月光斑驳地洒落在那片荒凉的工地。高耸的钢筋骨架如同巨大的怪兽&#xff0c;在黑暗中矗立着&#xff0c;散发着令人不安的气息。这里曾是城市的繁华之地&#xff0c;但如今却成了一片废墟&#xff0c;充满了无尽的恐怖和神秘。 工地四周被铁丝网围了起来&am…

Flutter 中的 GlowingOverscrollIndicator 小部件:全面指南

Flutter 中的 GlowingOverscrollIndicator 小部件&#xff1a;全面指南 Flutter 的 GlowingOverscrollIndicator 是一个视觉效果引人注目的组件&#xff0c;用于在列表或网格滚动超出其内容大小时提供视觉反馈。这种组件通常以发光效果指示用户已经滚动到了末端或超出了内容区…

算法题1:电路开关(HW)

题目描述 实验室对一个设备进行通断测试,实验员可以操控开关进行通断,有两种情况: ps,图没记下来,凭印象画了类似的 初始时,3个开关的状态均为断开;现给定实验员操控记录的数组 records ,records[i] = [time, switchId],表示在时刻 time 更改了开关 switchId 的状态…

【大模型】 基于AI和全球化进程的权衡:开源大模型与闭源大模型

【大模型】 基于AI和全球化进程的权衡&#xff1a;开源大模型与闭源大模型 前言 实际上关于开源or闭源&#xff0c;一直以来都是颇有争议的话题&#xff0c;人们争执于数据的隐私性和共享性&#xff0c;到底哪一方能获得的收益更大。而对于开源与闭源哪个更好实际上也就是说是…

Nginx的satisfy指令_ 用途,使用场景及注意事项

什么是satisfy指令&#xff1f; Nginx的satisfy指令用于控制当请求符合多个访问控制条件时&#xff0c;如何对这些条件进行组合判断。具体来说&#xff0c;它决定了是在多个访问控制条件中&#xff0c;只要任意一个条件满足即可还是全部条件都必须满足。 用途与使用场景 sat…

深度学习500问——Chapter09:图像分割(5)

文章目录 9.12 DenseNet 9.13 图像分割的数据集 9.13.1 PASCAL VOC 9.13.2 MS COCO 9.13.3 Cityscapes 9.14 全景分割 9.12 DenseNet 这篇论文是CVPR2017年的最佳论文。 卷积神经网络结构的设计主要朝着两个方向发展&#xff0c;一个是更宽的网络&#xff08;代表&#xff1a…

【算法例题】n元钱买n只鸡

题目描述&#xff1a;公鸡5元1只&#xff0c;母鸡3元1只&#xff0c;小鸡1元3只&#xff0c;问&#xff1a;n元钱买n只鸡&#xff0c;怎么买&#xff1f; 解题思路&#xff1a;这题要用枚举算法&#xff0c;枚举鸡的数量&#xff0c;代码如下&#xff1a; ​#include <bit…

【揭开深度学习之核:反向传播算法简析】

文章目录 前言反向传播算法的基础工作原理伪代码示例关键点结论 前言 在深度学习的世界里&#xff0c;反向传播算法是一张藏在神秘面纱后的地图&#xff0c;它指引着神经网络通过复杂的数据迷宫&#xff0c;找到最优解的路径。本文将简要介绍反向传播算法的原理&#xff0c;探…

初步学习pygame,使用pygame搭建简单的窗口效果

在VSCode上使用pygame 第一步&#xff1a;创建 Python 虚拟环境 打开 VSCode 中的 Terminal&#xff08;在菜单栏中选择 View > Terminal&#xff09;使用 cd 命令切换到你的项目文件夹输入以下命令来创建一个新的虚拟环境&#xff1a; python3 -m venv env这将在你的项目…

【Element-plus】vue组合式中使用el-upload通过oss接口上传图片流程(可直接复制使用)

Html <el-upload:actionossUrl:on-success"handleImgSuccess":headers"{Authorization:token}"><el-icon><Plus /></el-icon>点击上传图片</el-upload> JS const ossUrl ref("") ossUrl.value 【你的ossUrl】…

每天五分钟深度学习框架PyTorch:创建具有特殊值的tensor张量

本文重点 tensor张量是一个多维数组,本节课程我们将学习一些pytorch中已经封装好的方法,使用这些方法我们可以快速创建出具有特殊意义的tensor张量。 创建一个值为空的张量 import torch import numpy as np a=torch.empty(1) print(a) print(a.dim()) print(s.shape) 如图…

三菱机械手维修控制器故障

在工业自动化领域&#xff0c;三菱工业机器人凭借其高性能、高可靠性和易用性&#xff0c;受到了广泛应用。然而&#xff0c;随着时间的推移&#xff0c;可能会出现MITSUBISH工业机械臂控制器故障&#xff0c;需要进行三菱机械手维修。 一、MITSUBISH机械手控制器故障诊断 在进…

【MySQL精通之路】MySQL的使用(1)-调用MySQL程序

目录 1.命令解释器 2.选项 3.非选项 4.环境变量 要从命令行&#xff08;也就是说&#xff0c;从shell或命令提示符&#xff09;调用MySQL程序 请输入程序名称&#xff0c;然后输入任何选项或其他参数&#xff0c;以指示程序要执行的操作。 以下命令显示了一些示例程序调用…

冷干机的日常维护

冷干机的日常维护保养。 观察记录 (一)每班观察记录仪表值4次 1、压缩空气进出口压差不超过0.035Mpa; 2、蒸发压力表0.4Mpa-0.5Mpa; 高压压力表1.2Mpa-1.6Mpa。&#xff08;冷媒R22&#xff09; 3、压缩机的运行电流、电压。 (二)经常观察冷却水系统、压缩空气系统的进口温度…

【Numpy】深入解析numpy.mgrid()函数

numpy.mgrid()&#xff1a;多维网格生成与数值计算的利器 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393…

Android Audio基础——AudioTrack构造过程(九)

通过前面的学习我们知道 AudioTrack 是 Android 中用于播放音频的类,它提供了一种方式来直接控制音频数据的播放。通过 AudioTrack 类,你可以创建一个用于播放音频的音频流,并将音频数据写入该流中进行播放。 在创建 AudioTrack 对象时,你可以指定音频流的参数,如采样率、…