力扣 621. 任务调度器
主要思想是对给定的列表求取出现次数最多的字母的次数是多少,以及有几个
使用python自带的函数
class Solution(object):
def leastInterval(self, tasks, n):
"""
:type tasks: List[str]
:type n: int
:rtype: int
"""
freq = collections.Counter(tasks)
# 最多的执行次数
maxExec = max(freq.values())
# 具有最多执行次数的任务数量
maxCount = sum(1 for v in freq.values() if v == maxExec)
return max((maxExec - 1) * (n + 1) + maxCount, len(tasks))
最后耗时:
使用自写自带的函数
def leastInterval(self, tasks, n):
counts = {}
for key in tasks:
counts[key] = counts.get(key, 0) + 1
max_num = 0
num = 0
for x in counts.values():
if x > max_num:
max_num = x
num = 1
elif x == max_num:
num += 1
lenth = (max_num - 1) * (n + 1) + num
return max(len(tasks), lenth)
最后耗时: