publicintlongestConsecutive(int[] nums){if(nums ==null|| nums.length ==0)return0;PriorityQueue<Integer> pq =newPriorityQueue<>(newComparator<Integer>(){@Overridepublicintcompare(Integer o1,Integer o2){return o1-o2;}});for(int i =0; i < nums.length; i++){
pq.add(nums[i]);}int count =1;// while(!pq.isEmpty()){// System.out.print(pq.poll() + " ");// }int num = pq.poll();int max =1;for(int i =1; i < nums.length; i++){//结束时还要比较一次int temp = pq.poll();if(temp == num +1){
count++;}elseif(temp == num){continue;}else{//可能一直有序就进不来了
max =Math.max(count, max);
count =1;}
num = temp;}returnMath.max(count, max);}
//找到起点在更新,若存在前一个节点就不更新publicintlongestConsecutive(int[] nums){Set<Integer> set =newHashSet<>();for(int num:nums){
set.add(num);}int max =0;for(int num : nums){if(!set.contains(num -1)){int count =1;int temp = num +1;while(set.contains(temp)){
count++;
temp++;}
max =Math.max(count, max);}}return max;}