题目:
给定一个整数数组,求这个数组中的数字可以组成的最长连续序列有多长。
思路:
可以把所有数字放到一个哈希表,然后不断地从哈希表中任意取一个值,并删除掉其之前之后的所有连续数字,然后更新目前的最长连续序列长度。重复这一过程,我们就可以找到所
有的连续数字序列。
class Solution {
public int longestConsecutive(int[] nums) {
Set<Integer> num_set = new HashSet<Integer>();
for (int num : nums){
num_set.add(num);
}
int longesStreak = 0;
for (int num : num_set){
if (!num_set.contains(num-1)){
int currentNum = num;
int currentStreak = 1;
while (num_set.contains(currentNum + 1)){
currentNum +=1;
currentStreak +=1;
}
longesStreak = Math.max(longesStreak,currentStreak);
}
}
return longesStreak;
}
}