```cpp
class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        if(nums.size()<=1){
            return nums.size();
        }
        priority_queue<int> pq(nums.begin(), nums.end());
        int cnt = 1;
        int maxCnt = 1;
        int before = pq.top();pq.pop();
        while(pq.size()>0){
            int cur = pq.top(); pq.pop();
            if(before-cur ==1){
                cnt++;
                maxCnt = max(maxCnt, cnt);
            }else if(before==cur){
                continue;    
            }else{
                maxCnt = max(maxCnt, cnt);
                cnt=1;
            }
            before = cur;
        }

        return maxCnt;
    }
};
```

- 순서 유지 조건 없으므로, insert와 정렬을 동시에 할 수 있는 우선순위 큐 사용
- 전체 정렬이 필요할 경우 정렬이 더 유리할 수 있으나, 최적화 여지가 우선순위 큐가 더 커서 사용
  - ex) 탐색 중단 조건 등


