最长连续序列
2026年3月8日小于 1 分钟
最长连续序列
使用到的方法
Set接口中的方法:
contains(): 判断HashSet中是否存在指定的元素。
解题思路
- 首先将数组中的元素存入一个
HashSet中,以便快速查找。 - 然后遍历数组中的每个元素,检查它是否是一个连续序列的起点(即当前元素的前一个元素不在
HashSet中)。 - 如果是起点,则继续检查后续的元素是否存在于
HashSet中,直到找到连续序列的末尾。 - 记录连续序列的长度,并更新最长连续序列的长度。
代码实现
class Solution {
public int longestConsecutive(int[] nums) {
Set<Integer> set = new HashSet<Integer>();
for(Integer num : nums){
set.add(num);
}
int maxRes = 0;
for(Integer num : set){
if(!set.contains(num - 1)){
int currentNum = num;
int currentLen = 1;
while(set.contains(currentNum + 1)){
currentNum += 1;
currentLen += 1;
}
maxRes = Math.max(maxRes,currentLen);
}
}
return maxRes;
}
}