个人感觉hashMap比官方的hashSet可能大概要好理解一点
public static int longestConsecutive(int[] nums) {
//1.考虑边界
if(nums.length == 0){
return 0;
}
//2.重复数无作用=>创建hashMap存放nums中的值及对应的最长子序列长度
HashMap<Integer,Integer> map = new HashMap();
for (int num : nums) {
map.put(num, 1);
}
//3.取出键,遍历每一个键,寻找最长序列长度
Set<Integer> sets = map.keySet();
for (Integer set : sets) {
int currentNum = set;
int count = 1;
//只统计以某一段序列开头的数的最长子序列长度
if(!sets.contains(currentNum - 1)){
while (sets.contains(currentNum + 1)){
count++;
currentNum++;
}
map.put(set,count);
}
}
Collection<Integer> list = map.values();
return Collections.max(list);
}