LeetCode 621. Task Scheduler  时间复杂度(O(n*m))

    xiaoxiao2022-07-08  218

     时间复杂度(O(n*m)),思想:排序

    class Solution: def leastInterval(self, tasks: [str], n: int) -> int: tasks_count = [0] * 26 for task in tasks: tasks_count[ord(task) - 65] += 1 interval_count, n = 0, n + 1 while True: tasks_count = [i for i in tasks_count if i > 0] tasks_count.sort(reverse=True) tasks_count_len = len(tasks_count) if tasks_count_len == 0: break if tasks_count[0] > 1 and n>tasks_count_len: interval_count += n - tasks_count_len for i in range(n if n< tasks_count_len else tasks_count_len): if tasks_count[i] > 0: tasks_count[i], interval_count = tasks_count[i] - 1, interval_count + 1 else: interval_count += n - i break return interval_count

     

    最新回复(0)