堆
枫流仁武
这个作者很懒,什么都没留下…
展开
-
LeetCode 264 丑数2
编写一个程序,找出第n个丑数。 丑数就是质因数只包含2, 3, 5的正整数。 两种方法,堆和动态规划 动态规划: class Solution: def nthUglyNumber(self, n: int) -> int: i2, i3, i5 = 0, 0, 0 arr = [1] for j in range(1, n): val = min(arr[i2] * 2, arr[i3] * 3, ar...原创 2021-01-23 18:58:10 · 70 阅读 · 0 评论 -
LeetCode 621 任务调度器
给你一个用字符数组tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。 然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。 你需要计算完成所有任务所需要的 最短时间 。 输入:tasks = ["A","A","A","B","B","B"], .原创 2020-12-05 08:32:02 · 267 阅读 · 0 评论 -
LeetCode 767 重构字符串
给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。 若可行,输出任意可行的结果。若不可行,返回空字符串。 示例1: 输入: S = "aab" 输出: "aba" 示例 2: 输入: S = "aaab" 输出: "" 本题采用贪心算法和堆来求解。 我们尽可能向构造的字符串中加入剩余数量多的字符,这样避免剩余过多的单一字符,最后 相邻。 每次选出剩余最多的两个字符就可以避免和以构造的字符串末尾同。 import heapq from collections impo.原创 2020-11-30 18:59:43 · 67 阅读 · 0 评论