解題思路
用公式計算。
程式碼
class Solution {
public:
int leastInterval(vector<char>& tasks, int n) {
if(n == 0) return tasks.size();
int arr[26] = {0}, maxTask = 0, maxTaskCount = 0;
for(int i=0; i<tasks.size(); i++)
{
arr[tasks[i] - 'A']++;
maxTask = max(maxTask, arr[tasks[i] - 'A']);
}
for(int i=0; i<26; i++)
{
if(arr[i] == maxTask)
maxTaskCount++;
}
int ans = (n+1) * (maxTask-1) + maxTaskCount;
return max((int)tasks.size(), ans);
}
};
沒有留言:
張貼留言