Notice
250x250
Recent Posts
Recent Comments
Link
넘치게 채우기
[LeetCode] 347. Top K Frequent Elements 본문
728x90
반응형
https://leetcode.com/problems/top-k-frequent-elements/description/
문제 유형 : 해시, 힙
문제 난이도 : Medium
문제
Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.
nums배열과 k정수가 주어진다. k등만큼 많은 요소를 반환해라. 순서는 상관없다.
풀이
map(key, value)를 사용하여 우선순위 큐에 넣고 k등까지만 저장하여 반환하면 된다. value로 비교를 한다.
코드(C++)
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int, int> m;
for (int num : nums) {
m[num]++;
}
auto cmp = [](const pair<int, int>& a, const pair<int, int>& b) {
return a.second > b.second;
};
priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(cmp)> pq(cmp);
for (const auto& entry : m) {
pq.push(entry);
if (pq.size() > k) {
pq.pop();
}
}
vector<int> result;
while (!pq.empty()) {
result.push_back(pq.top().first);
pq.pop();
}
return result;
}
};
728x90
반응형
'PS > LeetCode' 카테고리의 다른 글
[LeetCode] 2542. Maximum Subsequence Score (0) | 2023.05.24 |
---|---|
[LeetCode] 703. Kth Largest Element in a Stream (0) | 2023.05.23 |
[LeetCode] 934. Shortest Bridge (0) | 2023.05.21 |
[LeetCode] 399. Evaluate Division (0) | 2023.05.20 |
[LeetCode] 785. Is Graph Bipartite? (0) | 2023.05.19 |