[leetcode] 621. Task Scheduler(medium)

it2025-11-20  7

原题

思路: 按频率最大的字母来分块,频率最大的字母个数-1为分成的块数,每一块个数为n+1 比如AAABBCE,n=2, 则分为A…A… +A AAABBBCCEE,n=2,则分为AB…AB… +AB 答案 = MAX(原数组长度,所有分块的长度和 + 频率最大的字母种数) 仅当n=0时,答案是原数组长度。

class Solution { public: int leastInterval(vector<char>& tasks, int n) { unordered_map<char,int> mp; int count = 0; for(auto e : tasks) { mp[e]++; count = max(count, mp[e]); } int ans = (count-1)*(n+1); for(auto e : mp) if(e.second == count) ans++; return max((int)tasks.size(), ans); } };

转载于:https://www.cnblogs.com/ruoh3kou/p/9893443.html

相关资源:数据结构—成绩单生成器
最新回复(0)