-
[leetcode] 128. Longest Consecutive Sequence알고리즘 2021. 4. 30. 01:04728x90
class Solution { public: int longestConsecutive(vector<int>& nums) { int answer = 0; unordered_set<int> s(nums.begin(),nums.end()); for(int n : nums) { if(s.find(n-1) == s.end()) { int now = n; int matched = 1; while(s.find(now + 1) != s.end()) { now += 1; matched++; } answer = max(answer, matched); } } return answer; } };
결과를 확인해보니 최적은 아닌것 같지만, 우선 set을 활용하여 간단하게 풀어보았습니다.
union-find를 구현하는 문제인데 o(n)에 구현해야되니 생각나는건 set을 활용했습니다.
지금 드는 생각으론 set을 2개를 써서 풀면 좀 더 빠를거 같습니다. 나중에 구현해봐야겠네요
'알고리즘' 카테고리의 다른 글
[알고리즘 이론] Tree (0) 2021.04.23 [leetcode] 841. Keys and Rooms (0) 2021.04.18 [leetcode] 1267. Count Servers that Communicate (0) 2021.04.17 [leetcode] 1557. Minimum Number of Vertices to Reach All Nodes (0) 2021.04.17 [leetcode] 581. Shortest Unsorted Continuous Subarray (0) 2021.04.16