static bool cmp(pair<int, int> p1, pair<int, int> p2) {
return p1.second > p2.second;
}
int minSetSize(vector<int> &arr) {
unordered_map<int, int> m;
for (auto it:arr)
m[it]++;
int size = arr.size() / 2;
pair<int, int> p[m.size()];
int idx = 0;
for (auto it:m)
p[idx++] = it;
sort(p, p + idx, cmp);
int ret = 1;
int pre = 0;
int total = 0;
while (true) {
total += p[pre].second;
if (arr.size() - total <= size)
return ret;
else
pre = ret++;
}
}
1338. 数组大小减半
最新推荐文章于 2022-07-19 14:06:33 发布