2023年2月13日 星期一

621. Task Scheduler

解題思路

用公式計算。

程式碼

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);
    }
};

沒有留言:

張貼留言