最长连续序列:ACM 模式刷题
按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。
题目描述
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
输入格式
第一行包含一个整数 n,表示数组长度。
当 n > 0 时,第二行包含 n 个整数 nums[0], nums[1], …, nums[n-1],相邻数字以空格分隔;当 n = 0 时,不再输入第二行。
输出格式
输出一个整数,表示最长连续整数序列的长度。空数组的答案为 0。
数据范围
- 0 ≤ n ≤ 10⁵
- −10⁹ ≤ nums[i] ≤ 10⁹
- 数组中可能包含重复元素
公开样例
样例 1
输入
6 100 4 200 1 3 2
输出
4
最长连续序列为 1、2、3、4,长度为 4。
样例 2
输入
10 0 3 7 2 5 8 4 6 0 1
输出
9
最长连续序列为 0 到 8,重复出现的 0 不会增加序列长度。
练习建议
先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。