LeetCodeHot100-128-最长连续序列
题目
给定一个未排序的整数数组 nums
,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n)
的算法解决此问题。
示例 1:
1 |
|
示例 2:
1 |
|
提示:
0 <= nums.length <= 105
-109 <= nums[i] <= 109
题解
我的本题解法应该是纯基于数组来做的,时间复杂度击败98.52%,空间复杂度击败90.44%,算是比较不错的解法了。
最基本的思想就是先排序,然后我们再找最长的连续序列。
算法步骤:
排序
初始化结果
res
和每轮的最大长度tempMax
从下标
0
到倒数第二个数开始,遍历nums
数组:如果数字相同了,我们继续下一轮遍历;
如果下一个数字比当前数字大
1
,tempMax++
;如果下一个数字不连续了,更新
res
,初始化tempMax
注意最后一个数字没有进行比较,这里需要将最后一个数字如果连续或者相等(防止后面好几个数字一直都是连续的情况),
tempMax++
,
1 |
|
LeetCodeHot100-128-最长连续序列
https://excelius.xyz/leetcodehot100-128-最长连续序列/