One minute
Leetcode July: Task Scheduler
Greedy scheduling.
int leastInterval(vector<char>& tasks, int n) {
vector<int> freqs(26);
for(auto task : tasks) {
freqs[task-'A']++;
}
sort(freqs.begin(), freqs.end(), greater<int>());
int maxFrequency = freqs[0];
int idle = (maxFrequency - 1) * n;
for(int i=1;i<freqs.size()-1;i++) {
idle -= min(maxFrequency-1, freqs[i]);
}
idle = max(idle, 0);
return idle + tasks.size();
return 0;
}
Read other posts