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