dp问题呀,虽然看了标签是union find,但一样可以用dp,只需要先排个序用dp就很简单了,24ms
public class Solution {
public int longestConsecutive(int[] nums) {
Set<Integer> set = new TreeSet<>();
List<Integer>list = new ArrayList<>();
int max=0;
int []dp = new int[nums.length];
if(nums.length>0){dp[0] = 1;max=1;}
for(int i=0;i<nums.length;i++){
set.add(nums[i]);
}
list.addAll(set);
for(int i=1;i<list.size();i++){
if(list.get(i)==list.get(i-1)+1){
dp[i]= dp[i-1]+1;
}else{
dp[i]=1;
}
if(dp[i]>max){
max = dp[i];
}
}
return max;
}
}