My leetcode submissions.
1#include <bits/stdc++.h>
2#include <ranges>
3namespace ra = std::ranges;
4namespace vi = std::ranges::views;
5using namespace std;
6
7auto longestConsecutiveSequence(vector<int>& nums) -> int
8{
9 if (nums.size() == 0)
10 return 0;
11 auto pq = priority_queue<int>(nums.begin(), nums.end());
12
13 auto max_count = 1;
14 auto curr = 1;
15 for (auto prev = pq.top(); not pq.empty(); prev = pq.top(), pq.pop()) {
16 if (pq.top() == prev)
17 continue;
18 else
19 curr = pq.top() == prev - 1 ? curr + 1 : 1;
20 max_count = max(max_count, curr);
21 }
22
23 return max_count;
24}
25
26auto main() -> int
27{
28 auto nums = vector{100, 4, 200, 1, 3, 2};
29 cout << longestConsecutiveSequence(nums) << endl;
30 nums = vector{0, 3, 7, 2, 5, 8, 4, 6, 0, 1};
31 cout << longestConsecutiveSequence(nums) << endl;
32 nums = vector{ 1,2,0,1 };
33 cout << longestConsecutiveSequence(nums) << endl;
34 nums = vector{0};
35 cout << longestConsecutiveSequence(nums) << endl;
36
37 return 0;
38}