![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
优先队列
我很忙2010
咩
展开
-
leetcode 将区间分为最少组数
如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是。所有区间互不相交,所以我们可以把它们全部放在一个组内。- 第 2 组:[2, 3] ,[5, 10]。- 第 1 组:[1, 5] ,[6, 8]。属于一个组,且同一个组中任意两个区间。可以证明无法将区间划分为少于 3 个组。- 第 3 组:[1, 10]。划分为一个或者多个区间。给你一个二维整数数组。需要划分成多少个组。原创 2022-09-12 13:09:39 · 218 阅读 · 1 评论 -
leetcode 将数组和减半的最少操作次数
给你一个正整数数组nums。每一次操作中,你可以从nums中选择任意一个数并将它减小到恰好一半。(注意,在后续操作中你可以对减半过的数继续执行操作)请你返回将nums数组和至少减少一半的最少操作数。示例 1:输入:nums = [5,19,8,1]输出:3解释:初始 nums 的和为 5 + 19 + 8 + 1 = 33 。以下是将数组和减少至少一半的一种方法:选择数字 19 并减小为 9.5 。选择数字 9.5 并减小为 4.75 。选择数字 8...原创 2022-03-19 23:59:26 · 1109 阅读 · 0 评论 -
leetcode 构造限制重复的字符串
给你一个字符串s和一个整数repeatLimit,用s中的字符构造一个新字符串repeatLimitedString,使任何字母连续出现的次数都不超过repeatLimit次。你不必使用s中的全部字符。返回字典序最大的repeatLimitedString。如果在字符串a和b不同的第一个位置,字符串a中的字母在字母表中出现时间比字符串b对应的字母晚,则认为字符串a比字符串b字典序更大。如果字符串中前min(a.length, b.leng...原创 2022-02-21 00:12:57 · 316 阅读 · 0 评论 -
leetcode 1405. 最长快乐字符串
如果字符串中不含有任何'aaa','bbb'或'ccc'这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。给你三个整数a,b,c,请你返回任意一个满足下列全部条件的字符串s:s是一个尽可能长的快乐字符串。 s中最多有a个字母'a'、b个字母'b'、c个字母'c'。 s中只含有'a'、'b'、'c'三种字母。如果不存在这样的字符串s,请返回一个空字符串""。示例 1:输入:a = 1, b = 1, c = 7输出:"...原创 2022-02-09 21:41:30 · 89 阅读 · 0 评论 -
leetcode 5839. 移除石子使总数最小(C++、java、python)
给你一个整数数组piles,数组下标从 0 开始,其中piles[i]表示第i堆石子中的石子数量。另给你一个整数k,请你执行下述操作恰好k次:选出任一石子堆piles[i],并从中移除floor(piles[i] / 2)颗石子。注意:你可以对同一堆石子多次执行此操作。返回执行k次操作后,剩下石子的最小总数。floor(x)为小于或等于x的最大整数。(即,对x向下取整)。示例 1:输入:piles = [5,4,...原创 2021-08-08 16:37:43 · 201 阅读 · 0 评论 -
leetcode 5805. 最小未被占据椅子的编号(C++、java、python)
有n个朋友在举办一个派对,这些朋友从0到n - 1编号。派对里有无数张椅子,编号为0到infinity。当一个朋友到达派对时,他会占据编号最小且未被占据的椅子。比方说,当一个朋友到达时,如果椅子0,1和5被占据了,那么他会占据2号椅子。当一个朋友离开派对时,他的椅子会立刻变成未占据状态。如果同一时刻有另一个朋友到达,可以立即占据这张椅子。给你一个下标从0开始的二维整数数组times,其中times[i] = [arrivali, leavingi...原创 2021-07-25 01:02:00 · 203 阅读 · 1 评论 -
leetcode 5638. 吃苹果的最大数目(C++)
有一棵特殊的苹果树,一连n天,每天都可以长出若干个苹果。在第i天,树上会长出apples[i]个苹果,这些苹果将会在days[i]天后(也就是说,第i + days[i]天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用apples[i] == 0且days[i] == 0表示。你打算每天最多吃一个苹果来保证营养均衡。注意,你可以在这n天之后继续吃苹果。给你两个长度为n的整数数组days和apples,返回你可以吃掉的苹果的最大数...原创 2020-12-27 15:07:51 · 498 阅读 · 0 评论 -
LeetCode 692. 前K个高频单词(C++)
给一非空的单词列表,返回前k个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2输出: ["i", "love"]解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。 ...原创 2019-01-28 19:35:58 · 595 阅读 · 1 评论 -
LeetCode 451. 根据字符出现频率排序(C++、python)
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入:"cccaaa"输出:"cccaaa"解释:'c'和'a'都出现三次。此外,"aaaccc"也是有效...原创 2019-01-07 18:59:36 · 553 阅读 · 0 评论 -
LeetCode 767. 重构字符串(C++、python)
给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例1:输入: S = "aab"输出: "aba"示例 2:输入: S = "aaab"输出: ""注意:S只包含小写字母并且长度在[1, 500]区间内。C++class Solution {public: s...原创 2018-11-06 16:33:15 · 721 阅读 · 0 评论 -
leetcode 1167. 连接棒材的最低费用(C++)
为了装修新房,你需要加工一些长度为正整数的棒材sticks。如果要将长度分别为X和Y的两根棒材连接在一起,你需要支付X + Y的费用。 由于施工需要,你必须将所有棒材连接成一根。返回你把所有棒材sticks连成一根所需要的最低费用。注意你可以任意选择棒材连接的顺序。示例 1:输入:sticks = [2,4,3]输出:14解释:先将 2 和 3 连接成...原创 2019-08-25 00:19:14 · 488 阅读 · 0 评论 -
leetcode 1121. 将数组分成几个递增序列(C++)
给你一个非递减的正整数数组nums和整数K,判断该数组是否可以被分成一个或几个长度至少为K的 不相交的递增子序列。示例 1:输入:nums = [1,2,2,3,3,4,4], K = 3输出:true解释:该数组可以分成两个子序列 [1,2,3,4] 和 [2,3,4],每个子序列的长度都至少是 3。示例 2:输入:nums = [5,6,6,...原创 2019-07-14 00:16:02 · 641 阅读 · 0 评论 -
leetcode 1102. 得分最高的路径(C++)
给你一个 R 行 C 列的整数矩阵A。矩阵上的路径从[0,0]开始,在[R-1,C-1]结束。路径沿四个基本方向(上、下、左、右)展开,从一个已访问单元格移动到任一相邻的未访问单元格。路径的得分是该路径上的最小值。例如,路径 8 → 4 → 5 → 9 的值为 4 。找出所有路径中得分最高的那条路径,返回其得分。示例 1:输入:[[5,4,...原创 2019-07-02 20:24:47 · 1668 阅读 · 0 评论 -
leetcode 703. 数据流中的第K大元素(C++)
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的KthLargest类需要一个同时接收整数k和整数数组nums的构造器,它包含数据流中的初始元素。每次调用KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLargest kthLa...原创 2019-06-26 23:33:21 · 161 阅读 · 0 评论 -
leetcode 1054. 距离相等的条形码(C++、python)
在一个仓库里,有一排条形码,其中第i个条形码为barcodes[i]。请你重新排列这些条形码,使其中两个相邻的条形码不能相等。 你可以返回任何满足该要求的答案,此题保证存在答案。示例 1:输入:[1,1,1,2,2,2]输出:[2,1,2,1,2,1]示例 2:输入:[1,1,1,1,2,2,3,3]输出:[1,3,1,3,2,1,2,1]提...原创 2019-05-30 16:56:07 · 743 阅读 · 0 评论 -
leetcode 1046. 最后一块石头的重量(C++、python)
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎; 如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回...原创 2019-05-24 17:35:46 · 422 阅读 · 0 评论