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

leetcode 128. 最长连续序列 - java

给定一个未排序的整数数组 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
示例 3:

输入:nums = [1,0,1,2]
输出:3

代码:

public static void main(String[] args) {int[] nums = new int[]{100,4,200,1,3,2,201};Integer longNumSize = 0;Set<Integer> set = Arrays.stream(nums).boxed().collect(Collectors.toSet());for (Integer num : nums) {// 从连接的最小数开始计算 - 不是最小数不进行累计if (!set.contains(num-1)) {Integer nowNumSize = 1;Integer nowNum = num;// +1数字存在 连接长度+1,数字+1while(set.contains(nowNum+1)) {nowNum++;nowNumSize++;}longNumSize = Math.max(longNumSize,nowNumSize);}}return longNumSize;
}

思路:取连接中的最小值开始处理,如果连接长度 > 1 , 累加更新连接长度,并比较获取最大连接长度;如果连接长度 = 1 ,最大连接长度为0

http://www.dtcms.com/a/323506.html

相关文章:

  • 【网络与爬虫 51】Scrapy-Cluster分布式爬虫集群:企业级大规模数据采集解决方案
  • 卷积神经网络学习
  • 新手小白使用jQuery在实际开发中常用到的经验
  • 讯飞晓医-讯飞医疗推出的个人AI健康助手
  • 初学python的我开始Leetcode题15-2
  • Web自动化技术选择
  • SpringBoot日志关系
  • 【能碳建设1】用AI+开源打造物联网+能碳管理+交易SaaS系统的最短路径实施指南
  • C#:dnSpy
  • 【密码学】7. 数字签名
  • 聚众识别误报率↓78%:陌讯动态密度感知算法实战解析
  • CentOS7编译安装GCC
  • Python基础教程(六)条件判断:引爆思维Python条件判断的九层境界
  • Java Stream流详解:用法与常用API实战
  • Kotlin 协程线程切换机制详解
  • 规划是自动驾驶的“头脑”
  • 灰度测试(灰度发布、金丝雀发布)
  • 推荐系统学习笔记(十一)预估分数融合
  • leetcode-C语言-3479.水果成篮 III
  • C++ vector类
  • 3.2Vue Router路由导航
  • 【熵增与熵减:从混乱到有序的奥秘】
  • 词向量可视化:用TensorBoard或PCA探索词向量空间
  • 【JavaEE】(11) 前端基础三件套
  • 大数据与财务管理:未来就业的黄金赛道
  • java9学习笔记-part2
  • rosrun 和 roslaunch 区别
  • Busybox编译、制作initramfs,并在QEMU中运行
  • 医疗健康Agent:诊断辅助与患者管理的AI解决方案
  • rotary_emb 位置编码 加速