leetcode 621. Task Scheduler (贪心)
来源:互联网 发布:网络女主播收入排行榜 编辑:程序博客网 时间:2024/06/07 06:21
题意:
给你一个只含A~Z的数组,和n。让你重新排序,相同的字符之间的间隔不得小于n(用其他字符或者“idle”来填充),求排序后的数组的长度的最小值。
思路:
先找出出现次数最多的字符ch(如果有多个最多的字符,把初始位置扩大即可),按照间隔求出最远的位置,而出现次数小ch的字符完全可以填充在其间隔之间,如果间隔的数目不足,可以把某个间隔扩大(如果间隔不足,总长度其实就是原来的数组的个数)
代码:
bool cmp(int a,int b){ return a>b;}class Solution {public: int leastInterval(vector<char>& tasks, int n) { int m = tasks.size(); int arr[30]; memset(arr,0,sizeof(arr)); for(int i = 0;i<m;i++) arr[tasks[i]-65]++; sort(arr,arr+30,cmp); int sum = 1; for(int i = 1;i<30;i++) if(arr[i]==arr[i-1]) sum++; else break; //int k = max(n+1,sum); int k = n+1; int ans = sum+(arr[0]-1)*k; ans = max(ans,m); return ans; }};
阅读全文
1 0
- leetcode 621. Task Scheduler (贪心)
- LeetCode 621. Task Scheduler
- 【LeetCode】621. Task Scheduler
- [LeetCode] 621. Task Scheduler
- Leetcode 621. Task Scheduler
- [leetcode]621. Task Scheduler
- leetcode 621. Task Scheduler
- Leetcode:621. Task Scheduler
- [LeetCode]621. Task Scheduler
- leetcode 621. Task Scheduler
- Leetcode 621. Task Scheduler
- leetcode 621. Task Scheduler
- leetcode 621 Task Scheduler
- [Leetcode 621] Task Scheduler
- [leetcode] 621 Task Scheduler
- LeetCode Task Scheduler
- LeetCode-Task Scheduler
- LeetCode:Task Scheduler
- lintcode --打劫房屋II
- 基于Volley学习使用AndroidSudio的三种添加依赖的方式和自己编译生成jar包
- BZOJ3992(NTT+DP+快速幂)
- itchat--玩转微信
- gcc attribute weak & alias应用
- leetcode 621. Task Scheduler (贪心)
- 位运算(C/C++中的一些技巧)
- Java线程代码实现
- navicat 把oracle数据库中表导入到mysql中
- Android数据库框架
- Java入门--单例模式
- python版本升级
- Share Extension
- X-UA-Compatible是神马?