题目
方法一:哈希
public class LongestConsecutive {
public int longestConsecutive(int[] nums) {
//去重
HashSet<Integer> sets = new HashSet<>();
for (int num : nums) {
sets.add(num);
}
int len = 0;
for (int set : sets) {
int num = set;
if (!sets.contains(num-1)) {//只有连续序列第一个值才循环
while (sets.contains(num+1)) {
num++;
}
}
len = Math.max(len, num-set+1);
}
return len;
}
public static void main(String[] args) {
int[] nums = {100,4,200,1,3,2};
LongestConsecutive consecutive = new LongestConsecutive();
System.out.println(consecutive.longestConsecutive(nums));
}
}
LeetCode测试结果