优先队列
hestyle
戎码一生!
展开
-
数据结构之堆(我猜,关于堆的这些维护细节,你肯定不清楚,不信你来看!)
在前面分析了二叉搜索树、红黑树等众多树结构,今天博主给大家换个口味,深入分析一下堆的实现原理与维护规则。(堆其实与二叉树有点相似) 数据结构之堆原理分析目录一、`堆`的概述1、什么是`堆`2、`堆`的划分3、`堆`的作用二、`堆`的底层实现三、`堆`的调整四、总结 一、堆的概述 1、什么是堆 堆,在日常生活中是一个量词,比如:一堆木头,下面这张图就是一堆木头,大家注意它的摆放规则,成金字塔...原创 2020-04-26 22:12:52 · 1272 阅读 · 1 评论 -
LeetCode 重构字符串(优先队列+贪心策略)
给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。 若可行,输出任意可行的结果。若不可行,返回空字符串。 示例 1: 输入: S = "aab" 输出: "aba" 示例 2: 输入: S = "aaab" 输出: "" 注意: S 只包含小写字母并且长度在[1, 500]区间内。 思路分析:\color{blue}{思路分析:}思路分析:这道题我们采用贪心策略的思想,每...原创 2019-05-07 09:00:00 · 982 阅读 · 0 评论 -
LeetCode 水位上升的泳池中游泳(广度优先搜索)
在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。 现在开始下雨了。当时间为 t 时,此时雨水导致水池中任意位置的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。假定你可以瞬间移动无限距离,也就是默认在方格内部游动是不耗时的。当然,在你游泳的时候你必须待在坐标方格里面。 你从坐...原创 2019-05-10 15:29:28 · 1393 阅读 · 0 评论 -
LeetCode 雇佣K名工人的最低成本(优先队列)
有 N 名工人。 第 i 名工人的工作质量为 quality[i] ,其最低期望工资为 wage[i] 。 现在我们想雇佣 K 名工人组成一个工资组。在雇佣 一组 K 名工人时,我们必须按照下述规则向他们支付工资: 对工资组中的每名工人,应当按其工作质量与同组其他工人的工作质量的比例来支付工资。 工资组中的每名工人至少应当得到他们的最低期望工资。 返回组成一个满足上述条件的工资组至少需要多少钱。 ...原创 2019-06-05 11:48:15 · 945 阅读 · 0 评论 -
LeetCode 最低加油次数(优先队列+贪心策略)
汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。 沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 station[i][1] 升汽油。 假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃料。它每行驶 1 英里就会用掉 1 升汽油。 当汽车到达加油站时,它可能停下来加油,将所有汽油从加油...原创 2019-06-09 20:10:32 · 1562 阅读 · 0 评论 -
LeetCode 最大频率栈(hash表+stack、优先队列)
实现 FreqStack,模拟类似栈的数据结构的操作的一个类。 FreqStack 有两个函数: push(int x),将整数 x 推入栈中。 pop(),它移除并返回栈中出现最频繁的元素。 如果最频繁的元素不只一个,则移除并返回最接近栈顶的元素。 示例: 输入: ["FreqStack","push","push","push","push","push","push","pop","pop...原创 2019-06-16 15:07:55 · 898 阅读 · 0 评论