
STL
ln2037
用心雕琢我的艺术品。
展开
-
LeetCode 1438. 绝对差不超过限制的最长连续子数组【STL】
给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。如果不存在满足条件的子数组,则返回 0 。示例 1:输入:nums = [8,2,4,7], limit = 4输出:2解释:所有子数组如下:[8] 最大绝对差 |8-8| = 0 <= 4.[8,2] 最大绝对差 |8-2| = 6 > 4.[8,2,4] 最大绝对差 |8-2| = 6 > 4.[8,2,4,原创 2021-02-22 00:02:20 · 107 阅读 · 0 评论 -
C++ multiset
multiset与set的区别是multiset能保存重复的元素,而set不能。插入和删除操作的时间复杂度为nlogn。常用操作:c.begin()返回一个随机存取迭代器,指向第一个元素c.end()返回一个随机存取迭代器,指向最后一个元素的下一个位置c.rbegin()返回一个逆向迭代器,指向逆向迭代的第一个元素c.rend()返回一个逆向迭代器,指向逆向迭代的最后一个元素的下一个位置...原创 2021-02-21 23:52:30 · 350 阅读 · 0 评论 -
LeetCode 394. 字符串解码 【模拟】
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:“aaabcbc”示例 2:输入:s = “原创 2021-01-24 22:10:58 · 97 阅读 · 0 评论 -
LeetCode 56. 合并区间 【STL】
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。注意:输入类型已于2019年4月15日更改。 请重置默认代码定义以获取新方法原创 2021-01-24 21:57:53 · 89 阅读 · 0 评论 -
LeetCode 347. 前 K 个高频元素【STL】
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可以按任意顺序返回答案。以每个数出现的原创 2021-01-19 19:06:49 · 83 阅读 · 0 评论 -
LeetCode 49. 字母异位词分组【STL】
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。vector + map。class Solution {public: vector<vector<string>> gr原创 2021-01-19 19:04:22 · 79 阅读 · 0 评论 -
LeetCodde 23. 合并K个升序链表【优先队列】
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists = []输出:[]示例原创 2020-12-18 20:35:00 · 104 阅读 · 1 评论 -
C++ 优先队列
优先队列里的元素默认按降序排列。若要更改排序规则可以采用以下两种方法:一.使用greater< T >:#include <iostream>#include <queue>using namespace std;int main() { priority_queue<int, vector<int>, greater<int> >q; q.push(234); q.push(34); q.push(342); w原创 2020-12-18 20:18:22 · 242 阅读 · 1 评论 -
2018年蓝桥杯C++省赛B组 【H:日志统计】【模拟】
题目描述小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:ts id。表示在ts时刻编号id的帖子收到一个"赞"。现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K个赞,该帖就曾是"热帖"。给定日志,请你帮助小明统计出所有曾是"热帖"的帖子编号。输入第一行包含三个整数N、D和原创 2020-10-14 19:36:38 · 262 阅读 · 0 评论 -
P1020 导弹拦截 【思维】
题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是≤50000 \le 50000≤50000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。输入格式111行,若干个整数(个数≤1000原创 2020-10-06 18:24:32 · 93 阅读 · 0 评论 -
P5076 【深基16.例7】普通二叉树(简化版)【STL】
题目描述您需要写一种数据结构,来维护一些数( 都是 10910^9109 以内的数字)的集合,最开始时集合是空的。其中需要提供以下操作,操作次数 qqq 不超过 10410^4104:查询 xxx 数的排名(排名定义为比当前数小的数的个数 +1+1+1。若有多个相同的数,因输出最小的排名)。查询排名为 xxx 的数。求 xxx 的前驱(前驱定义为小于 xxx,且最大的数)。若未找到则输出 −2147483647-2147483647−2147483647。求 xxx 的后继(后继定义为大于 xxx原创 2020-10-03 18:10:38 · 192 阅读 · 0 评论 -
P2234 [HNOI2002]营业额统计 【multiset】
题目描述Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况:当最小波动值越大时,就说明营业情况越不稳定。而分析整个公司的从成立到现原创 2020-09-28 16:39:03 · 172 阅读 · 0 评论 -
P4387 【深基15.习9】验证栈序列 【栈】
题目描述给出两个序列 pushed 和 poped 两个序列,其取值从 1 到 n(n≤100000)n(n\le100000)n(n≤100000)。已知入栈序列是 pushed,如果出栈序列有可能是 poped,则输出 Yes,否则输出 No。为了防止骗分,每个测试点有多组数据。输入格式第一行一个整数 qqq,询问次数。接下来 qqq 个询问,对于每个询问:第一行一个整数 nnn 表示序列长度;第二行 nnn 个整数表示入栈序列;第二行 nnn 个整数表示出栈序列;输出格式对于每个询问原创 2020-09-25 18:13:26 · 491 阅读 · 0 评论 -
P1241 括号序列 【模拟 + 栈】
题目描述定义如下规则序列(字符串):1.空序列是规则序列;2.如果S是规则序列,那么(S)和[S]也是规则序列;3.如果A和B都是规则序列,那么AB也是规则序列。例如,下面的字符串都是规则序列:(),[],(()),([]),()[],()[()]而以下几个则不是:(,[,],)(,()),([()现在,给你一些由‘(’,‘)’,‘[’,‘]’构成的序列,你要做的,是补全该括号序列,即扫描一遍原序列,对每一个右括号,找到在它左边最靠近它的左括号匹配,如果没有就放弃。在以这种方式把原序列匹配原创 2020-09-25 18:10:56 · 1024 阅读 · 0 评论 -
P1440 求m区间内的最小值 【单调队列】
题目描述一个含有 nnn 项的数列,求出每一项前的 mmm 个数到它这个区间内的最小值。若前面的数不足 mmm 项则从第 111 个数开始,若前面没有数则输出 000。输入格式第一行两个整数,分别表示 nnn,mmm。第二行,nnn 个正整数,为所给定的数列 aia_iai。输出格式nnn 行,每行一个整数,第 iii 个数为序列中 aia_iai 之前 mmm 个数的最小值。输入输出样例输入 #16 27 8 1 4 3 2输出 #1077113说明/提示对于 1原创 2020-09-09 15:18:08 · 225 阅读 · 0 评论 -
P2032 扫描 【单调队列】
题目描述有一个 1×n1 \times n1×n 的矩阵,有 nnn 个整数。现在给你一个可以盖住连续 kkk 个数的木板。一开始木板盖住了矩阵的第 1∼k1 \sim k1∼k 个数,每次将木板向右移动一个单位,直到右端与第 nnn 个数重合。每次移动前输出被覆盖住的数字中最大的数是多少。输入格式第一行两个整数 n,kn,kn,k,表示共有 nnn 个数,木板可以盖住 kkk 个数。第二行 nnn 个整数,表示矩阵中的元素。输出格式共 n−k+1n - k + 1n−k+1 行,每行一个原创 2020-09-09 14:07:08 · 244 阅读 · 0 评论 -
P1618 三连击(升级版)
P1618 三连击(升级版)题目描述将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。//感谢黄小U饮品完善题意输入输出格式输入格式:三个数,A B C。输出格式:若干行,每行3个数字。按照每行第一个数字升序排列。输入输出样例输入样例#1: 复制1 2 3输出样例#1: 复制...原创 2019-03-27 18:08:23 · 480 阅读 · 2 评论 -
7-4 宿舍谁最高? (20 分)
7-4 宿舍谁最高? (20 分)学校选拔篮球队员,每间宿舍最多有4个人。现给出宿舍列表,请找出每个宿舍最高的同学。定义一个学生类Student,有身高height,体重weight等。输入格式:首先输入一个整型数n (1<=n<=1000000),表示n位同学。紧跟着n行输入,每一行格式为:宿舍号,name,height,weight。宿舍号的区间为[0,999999], ...原创 2019-03-19 11:33:45 · 3185 阅读 · 0 评论