#include #include namespace ra = std::ranges; namespace vi = std::ranges::views; using namespace std; auto longestConsecutiveSequence(vector& nums) -> int { if (nums.size() == 0) return 0; auto pq = priority_queue(nums.begin(), nums.end()); auto max_count = 1; auto curr = 1; for (auto prev = pq.top(); not pq.empty(); prev = pq.top(), pq.pop()) { if (pq.top() == prev) continue; else curr = pq.top() == prev - 1 ? curr + 1 : 1; max_count = max(max_count, curr); } return max_count; } auto main() -> int { auto nums = vector{100, 4, 200, 1, 3, 2}; cout << longestConsecutiveSequence(nums) << endl; nums = vector{0, 3, 7, 2, 5, 8, 4, 6, 0, 1}; cout << longestConsecutiveSequence(nums) << endl; nums = vector{ 1,2,0,1 }; cout << longestConsecutiveSequence(nums) << endl; nums = vector{0}; cout << longestConsecutiveSequence(nums) << endl; return 0; }