
算法
泛泛之素
君子不器
展开
-
Leetcode: NO.135 分发糖果
题目老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例 2:输入: [1,2,2]输出: 4解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。 第三原创 2020-12-24 20:01:42 · 210 阅读 · 2 评论 -
Leetcode: NO.387 字符串中的第一个唯一字符
题目给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = "leetcode"返回 0s = "loveleetcode"返回 2提示:你可以假定该字符串只包含小写字母。链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string解题记录先统计个数然后返回第一个只有一个的索引/** * @author: ffzs * @Date: 2020/原创 2020-12-23 08:37:14 · 201 阅读 · 0 评论 -
Leetcode: NO.103 二叉树的锯齿形层序遍历 层序遍历
题目给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7]]链接:https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-trav原创 2020-12-22 20:19:53 · 173 阅读 · 0 评论 -
Leetcode: NO.746 使用最小花费爬楼梯 动态规划
题目数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。 示例 2:输入: cost = [1, 100, 1, 1, 1, 1原创 2020-12-21 09:02:07 · 211 阅读 · 0 评论 -
Leetcode: NO.316 去除重复字母
题目给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入:s = "bcabc"输出:"abc"示例 2:输入:s = "cbacdcbc"输出:"acdb"提示:1 <= s.length <= 104s 由小写英文字母组成链接:https://leetcode-cn.com/problems/remove-duplicate-letters解题记录优先统计原创 2020-12-20 12:21:40 · 212 阅读 · 2 评论 -
Leetcode: NO.48 旋转图像
题目给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2, 4, 8,10],原创 2020-12-19 08:49:44 · 171 阅读 · 1 评论 -
Leetcode: NO.389 找不同 异或
题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s = "", t = "y"输出:"y"示例 3:输入:s = "a", t = "aa"输出:"a"示例 4:输入:s = "ae", t = "aea"输出:"a"提示:0 <= s原创 2020-12-18 08:16:07 · 173 阅读 · 0 评论 -
Leetcode: NO.714 买卖股票的最佳时机含手续费 动态规划
题目给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例 1:输入: prices = [1, 3, 2, 8, 4, 9], fee = 2输出: 8解释: 能够达到的最大利润: 在此处原创 2020-12-17 08:55:01 · 160 阅读 · 0 评论 -
Leetcode: NO.290 单词规律
题目给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true 示例 2:输入:pattern = "abba", str = "dog cat cat fish"输出: false 示例 3:输入: pa原创 2020-12-16 08:14:41 · 161 阅读 · 0 评论 -
Leetcode: NO.738 单调递增的数字
题目给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)示例 1:输入: N = 10输出: 9示例 2:输入: N = 1234输出: 1234示例 3:输入: N = 332输出: 299说明: N 是在 [0, 10^9] 范围内的一个整数。链接:https://leetcode-cn.com/problems/原创 2020-12-15 09:11:53 · 194 阅读 · 0 评论 -
Leetcode: NO.49 字母异位词分组
题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。链接:https://leetcode-cn.com/problems/group-anagrams解题记录将字符中的字符重新排序作原创 2020-12-14 10:55:12 · 162 阅读 · 0 评论 -
Leetcode: NO.217 存在重复元素
题目给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true链接:https://leetcode-cn.com/problems/contains-duplicate解题记录直接快排,然后看前后是否相原创 2020-12-13 10:28:14 · 173 阅读 · 0 评论 -
Leetcode: NO.376 摆动序列 贪心算法
题目如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)转载 2020-12-12 10:57:46 · 237 阅读 · 0 评论 -
Leetcode: NO.649 Dota2 参议院 贪心算法
题目Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利:如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。给定一个字符串代表每个参议员的阵营。字母 “R” 和原创 2020-12-11 09:17:15 · 273 阅读 · 0 评论 -
Leetcode: NO.860 柠檬水找零
题目在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。第原创 2020-12-10 08:20:00 · 206 阅读 · 0 评论 -
Leetcode: NO.62 不同路径 动态规划
题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右3. 向下 -&原创 2020-12-09 08:58:04 · 177 阅读 · 0 评论 -
Leetcode: NO.842 将数组拆分成斐波那契序列 回溯算法
题目给定一个数字字符串 S,比如 S = “123456579”,我们可以将它分成斐波那契式的序列 [123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表 F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型);F.length >= 3;对于所有的0 <= i < F.length - 2,都有 F[i] + F[i+1] = F[i+2] 成立。另外,请注意,将字符串拆分成小块时,每个块的数原创 2020-12-08 20:42:07 · 186 阅读 · 0 评论 -
Leetcode: NO.861 翻转矩阵后的得分
题目有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]0b1111 + 0b1001 + 0b1111 = 1原创 2020-12-07 08:54:55 · 174 阅读 · 0 评论 -
Leetcode: NO.118 杨辉三角
题目给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]链接:https://leetcode-cn.com/problems/pascals-triangle解题记录通过构建上一层的情况来构建下一层/** * @author: ffzs * @Date: 2020原创 2020-12-06 13:09:57 · 183 阅读 · 0 评论 -
Leetcode: NO.621 任务调度器
题目给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例 1:输入:tasks = ["A","A","A","B","B"原创 2020-12-05 18:32:06 · 207 阅读 · 0 评论 -
Leetcode: NO.659 分割数组为连续子序列
题目给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。如果可以完成上述分割,则返回 true ;否则,返回 false 。示例 1:输入: [1,2,3,3,4,5]输出: True解释:你可以分割出这样两个连续子序列 : 1, 2, 33, 4, 5示例 2:输入: [1,2,3,3,4,4,5,5]输出: True解释:你可以分割出这样两个连续子序列 : 1, 2, 3, 4, 5原创 2020-12-04 08:29:11 · 298 阅读 · 0 评论 -
Leetcode: NO.204 计数质数 埃式筛
题目统计所有小于非负整数 n 的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 示例 2:输入:n = 0输出:0 示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106链接:https://leetcode-cn.com/problems/count-primes解题记录暴力枚举法被卡时间了没有通过埃式筛,如果被4是合数,那么4的倍数也能合数,因原创 2020-12-03 08:18:33 · 204 阅读 · 0 评论 -
Leetcode: NO.321 拼接最大数 单调栈
题目给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为 k 的数组。说明: 请尽可能地优化你算法的时间和空间复杂度。示例 1:输入:nums1 = [3, 4, 6, 5]nums2 = [9, 1, 2, 5, 8, 3]k = 5输出:[9, 8,原创 2020-12-02 09:08:37 · 219 阅读 · 0 评论 -
Leetcode: NO.34 在排序数组中查找元素的第一个和最后一个位置 二分查找
题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums =原创 2020-12-01 07:42:59 · 176 阅读 · 0 评论 -
Leetcode: NO.767 重构字符串
题目给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例 1:输入: S = "aab"输出: "aba"示例 2:输入: S = "aaab"输出: ""注意:S 只包含小写字母并且长度在[1, 500]区间内。链接:https://leetcode-cn.com/problems/reorganize-string解题记录优先统计每个字符出现情况,如果出现某个字符的长度超过一半那么不能分隔如果没有原创 2020-11-30 07:48:32 · 242 阅读 · 0 评论 -
Leetcode: NO.976 三角形的最大周长
题目给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <= A.length <= 100001 <= A[i] <= 10^6链接:https://leetcode-cn.c原创 2020-11-29 16:25:41 · 212 阅读 · 0 评论 -
Leetcode: NO.493 翻转对 分治排序
题目给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。示例 1:输入: [1,3,2,3,1]输出: 2示例 2:输入: [2,4,3,5,1]输出: 3注意:给定数组的长度不会超过50000。输入数组中的所有数字都在32位整数的表示范围内。链接:https://leetcode-cn.com/problems/reverse-pairs解题记原创 2020-11-28 16:54:47 · 178 阅读 · 0 评论 -
Leetcode: NO.454 四数相加 II
题目给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 −228-2^{28}−228 到 228−12^{28 - 1}228−1 之间,最终结果不会超过 231−12^{31 - 1}231−1 。例如:输入:A = [ 1, 2]B = [-2,-1]C =原创 2020-11-27 08:14:31 · 229 阅读 · 0 评论 -
Leetcode: NO.164 最大间距
题目给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。 示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。请尝试在线性时间复杂度和空间复杂度的条件下解决此问原创 2020-11-26 07:59:49 · 200 阅读 · 0 评论 -
Leetcode: NO.1370 上升下降字符串
题目给你一个字符串 s ,请你根据下面的算法重新构造字符串:从s中选出最小的字符,将它接在结果字符串的后面。从s剩余字符中选出 最小的字符,且该字符比上一个添加的字符大,将它接在结果字符串后面。重复步骤2,直到你没法从s中选择字符。从s中选出 最大的字符,将它接在结果字符串的后面。从s剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它接在结果字符串后面。重复步骤5,直到你没法从 s 中选择字符。重复步骤1到6,直到 s 中所有字符都已经被选过。在任何一步中,如果最小或者最大原创 2020-11-25 08:00:29 · 178 阅读 · 0 评论 -
Leetcode: NO.222 完全二叉树的节点个数 中序遍历
题目给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~2h2^h2h 个节点。示例:输入: 1 / \ 2 3 / \ /4 5 6输出: 6链接:https://leetcode-cn.com/problems/count-complete-tree-nodes解题记录通过原创 2020-11-24 08:12:37 · 203 阅读 · 0 评论 -
Leetcode: NO.452 用最少数量的箭引爆气球 贪心算法
题目在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstartx_{start}xstart,xendx_{end}xend, 且满足 xstart≤x≤xendx_{start} ≤ x ≤ x_{end}xstart≤x≤xend,原创 2020-11-23 17:03:47 · 303 阅读 · 0 评论 -
Leetcode: NO.242 有效的字母异位词
题目给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false 说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?链接:https://leetcode-cn.com/problems/valid-anagra原创 2020-11-22 11:32:26 · 189 阅读 · 0 评论 -
Leetcode: NO.148 排序链表 计算排序
题目给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 104] 内-105<=Node.val<=1原创 2020-11-21 11:19:45 · 193 阅读 · 0 评论 -
Leetcode: NO.147 对链表进行插入排序
题目对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: 1->原创 2020-11-20 12:12:23 · 173 阅读 · 0 评论 -
Leetcode: NO.283 移动零
题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。链接:https://leetcode-cn.com/problems/move-zeroes解题记录遍历数组,将不是0的数按照顺序写入数组将剩余的位置都填上0;/** * @author: ffzs * @Date: 2020/11/19 下午6原创 2020-11-19 19:11:56 · 183 阅读 · 0 评论 -
Leetcode: NO.134 加油站 贪心算法
题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入: gas = [1,2,3,4,5]cost = [3,4,5,1,2]原创 2020-11-18 13:52:33 · 206 阅读 · 1 评论 -
Leetcode: NO.1030 距离顺序排列矩阵单元格
题目给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。)示例 1:输入:R = 1, C =原创 2020-11-17 10:46:54 · 159 阅读 · 0 评论 -
Leetcode: NO.406 根据身高重建队列
题目假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]链接:https://leetcode-cn.com/problems/queue-reconstru原创 2020-11-16 14:03:45 · 172 阅读 · 0 评论 -
Leetcode: NO.402 移掉K位数字 双端队列
题目给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = "10200", k = 1输出: "200"解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。原创 2020-11-15 12:16:14 · 167 阅读 · 0 评论