本文主要是介绍2024-5-14——完成所有任务需要的最少轮数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2024-5-14
- 题目来源
- 我的题解
- 方法一 哈希表+数学
题目来源
力扣每日一题;题序:2244
我的题解
方法一 哈希表+数学
根据数学规律可以发现,除了只有1个任务时不能完成任务,其他的都可以完成。并且需要的轮数为: ⌈x/3⌉ ,x表示任务数
时间复杂度:O(n)
空间复杂度:O(n)
public int minimumRounds(int[] tasks) {Map<Integer,Integer> map=new HashMap<>();int n=tasks.length;for(int i=0;i<n;i++){map.put(tasks[i],map.getOrDefault(tasks[i],0)+1);}int res=0;for(int key:map.keySet()){int v=map.get(key);if(v==1)return -1;res+=v%3==0?v/3:v/3+1;}return res;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~
这篇关于2024-5-14——完成所有任务需要的最少轮数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!