解法:贪心
画矩形即可。
字符出现个数最多为m1,有m2个字符出现了m1次
(m1 - 1) * (n + 1) + m2 和 tasks.size()的最小值为ans
class Solution {
public:
int leastInterval(vector<char>& tasks, int n) {
int m = tasks.size();
unordered_map<char, int> cnt;
int mx = -1;
for (auto& each : tasks) {
cnt[each]++;
mx = max(mx, cnt[each]);
}
int ans = (mx - 1) * (n + 1);
for (auto& each : cnt) {
if (each.second == mx) {
ans++;
}
}
return max(m, ans);
}
};