qidao123.com ToB IT社区-企服评测·应用市场

 找回密码
 立即注册

JAVA学习-训练试用Java实现“最长一连序列”

[复制链接]
发表于 2026-2-14 19:36:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
题目:

给定一个未排序的整数数组 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 <= nums.length <= 105
-109 <= nums <= 109
解答思绪:

以下是使用 Java 实现的时间复杂度为 O(n) 的算法来办理此题目:
  1. import java.util.HashSet;
  2. import java.util.Set;
  3. public class LongestConsecutiveSequence {
  4.     public int longestConsecutive(int[] nums) {
  5.         Set<Integer> numSet = new HashSet<>();
  6.         for (int num : nums) {
  7.             numSet.add(num);
  8.         }
  9.         int longestStreak = 0;
  10.         for (int num : numSet) {
  11.             if (!numSet.contains(num - 1)) {
  12.                 int currentNum = num;
  13.                 int currentStreak = 1;
  14.                 while (numSet.contains(currentNum + 1)) {
  15.                     currentNum++;
  16.   
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录

QQ|手机版|qidao123.com IT社区;IT企服评测▪应用市场 ( 浙ICP备20004199|浙ICP备20004199号 )|网站地图

GMT+8, 2026-3-11 11:41 , Processed in 0.215900 second(s), 31 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表