Re: [闲聊] 每日LeetCode

楼主: pandix (面包屌)   2023-01-04 10:07:49
※ 引述《Rushia (みけねこ的鼻屎)》之铭言:
: 2244. Minimum Rounds to Complete All Tasks
: 给你一个阵列tasks表示一堆任务,task[i]表示第i个任务的难度,我们每一轮可以
: 完成2~3个同一种难度的任务,求出最少几轮可以完成所有任务,若无法完成所有任
: 务则返回-1。
: Example:
: Input: tasks = [2,2,3,3,2,4,4,4,4,4]
: Output: 4
: Explanation:
: 第一轮可以做3个难度2的任务
: 第二轮可以做2个难度3的任务
: 第三轮可以做3个难度4的任务
: 第四轮可以做2个难度4的任务
: 最少需做四轮
: Input: tasks = [2,3,3]
: Output: -1
: Explanation:
: 第一轮可以做两个难度3的任务
: 第二轮只剩下一个难度1的任务所以无法做完。
思路:
1.Python 直接 Counter()
2.把任务和完成次数列出来
任务量 1 2 3 4 5 6 7 8 9 10
次数 0 1 1 2 2 2 3 3 3 4
可以知道任务量 k >= 2 时完成次数为 (k+2)//3
Python code:
class Solution:
def minimumRounds(self, tasks: List[int]) -> int:
count = Counter(tasks)
res = 0
for v in count.values():
if v < 2:
return -1
res += (v + 2) // 3
return res
作者: Jaka (Jaka)   2023-01-04 10:08:00
大师
作者: Rushia (みけねこ的鼻屎)   2023-01-04 10:08:00
你怎么那么优秀

Links booklink

Contact Us: admin [ a t ] ucptt.com