2024-5-14
题目来源
我的题解
方法一 哈希表+数学
根据数学规律可以发现,除了只有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;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~