C++
边界流浪者
三流程序员,边界流浪者,大叔
展开
-
LeetCode-110. 平衡二叉树
输入:root = [1,2,2,3,3,null,null,4,4]输入:root = [3,9,20,null,null,15,7]一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。给定一个二叉树,判断它是否是高度平衡的二叉树。树中的节点数在范围 [0, 5000] 内。输入:root = []...原创 2022-08-26 11:04:26 · 525 阅读 · 1 评论 -
LeetCode-350. 两个数组的交集 II
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]如果 nums1 的大小比 nums2 小,哪种方法更优?...原创 2022-08-11 18:39:47 · 417 阅读 · 0 评论 -
LeetCode-636. 函数的独占时间
输入:n = 1, logs = ["0:start:0","0:start:2","0:end:5","0:start:6","0:end:6","0:end:7"]输入:n = 2, logs = ["0:start:0","0:start:2","0:end:5","1:start:6","1:end:6","0:end:7"]输入:n = 2, logs = ["0:start:0","0:start:2","0:end:5","1:start:7","1:end:7","0:end:8"]...原创 2022-08-07 22:55:37 · 389 阅读 · 0 评论 -
LeetCode-622. 设计循环队列
代码】LeetCode-622. 设计循环队列。原创 2022-08-05 15:32:39 · 182 阅读 · 0 评论 -
LeetCode-1796. 字符串中第二大的数字
给你一个混合字符串s,请你返回s中第二大的数字,如果不存在第二大的数字,请你返回-1。解释出现在s中的数字包括[1,2,3]。第二大的数字是2。解释出现在s中的数字只包含[1]。输入s="dfa12321afd"混合字符串由小写英文字母和数字组成。s只包含小写英文字母和(或)数字。输入s="abc1111"...原创 2022-08-02 13:49:31 · 220 阅读 · 0 评论 -
LeetCode-142. 环形链表 II
如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。给定一个链表的头节点head,返回链表开始入环的第一个节点。输入head=[3,2,0,-4],pos=1。输入head=[1,2],pos=0。解释链表中有一个环,其尾部连接到第二个节点。解释链表中有一个环,其尾部连接到第一个节点。输出返回索引为1的链表节点。解释链表中没有环。...原创 2022-08-01 22:59:11 · 92 阅读 · 0 评论 -
LeetCode-48. 旋转图像
先上下翻转,再按照对角线翻转。原创 2022-08-01 00:27:27 · 164 阅读 · 0 评论 -
LeetCode-1161. 最大层内元素和
输入root=[989,null,10250,98693,-89388,null,null,null,-32127]设根节点位于二叉树的第1层,而根节点的子节点位于第2层,依此类推。请返回层内元素之和最大的那几层(可能只有一层)的层号,并返回其中最小的那个。输入root=[1,7,0,7,-8,null,null]所以我们返回第2层的层号,它的层内元素之和最大。第3层各元素之和为7+-8=-1,第2层各元素之和为7+0=7,...原创 2022-07-31 21:36:55 · 111 阅读 · 0 评论 -
LeetCode-729. 我的日程安排表 I
实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复预订 。日程可以用一对整数 start 和 end 表示,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start ...原创 2022-07-09 12:13:32 · 176 阅读 · 0 评论 -
LeetCode-1279. 红绿灯路口
这是两条路的交叉路口。第一条路是 A 路,车辆可沿 1 号方向由北向南行驶,也可沿 2 号方向由南向北行驶。第二条路是 B 路,车辆可沿 3 号方向由西向东行驶,也可沿 4 号方向由东向西行驶。每条路在路口前都有一个红绿灯。红绿灯可以亮起红灯或绿灯。绿灯表示两个方向的车辆都可通过路口。红灯表示两个方向的车辆都不可以通过路口,必须等待绿灯亮起。两条路上的红绿灯不可以同时为绿灯。这意味着,当 A 路上的绿灯亮起时,B 路上的红灯会亮起;当 B 路上的绿灯亮起时,A 路上的红灯会亮起.开始时,A 路上的绿灯亮原创 2022-07-04 23:44:28 · 543 阅读 · 0 评论 -
LeetCode-1188. 设计有限阻塞队列
实现一个拥有如下方法的线程安全有限阻塞队列:BoundedBlockingQueue(int capacity) 构造方法初始化队列,其中capacity代表队列长度上限。void enqueue(int element) 在队首增加一个element. 如果队列满,调用线程被阻塞直到队列非满。int dequeue() 返回队尾元素并从队列中将其删除. 如果队列为空,调用线程被阻塞直到队列非空。int size() 返回当前队列元素个数。你的实现将会被多线程同时访问进行测试。每一个线程要么是一个只原创 2022-06-27 22:22:51 · 375 阅读 · 0 评论 -
LeetCode-515. 在每个树行中找最大值
给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。示例1:输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]示例2:输入: root = [1,2,3]输出: [1,3] 提示:二叉树的节点个数的范围是 [0,104]-231 ...原创 2022-06-24 22:01:20 · 117 阅读 · 0 评论 -
LeetCode-513. 找树左下角的值
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。示例 1:输入: root = [2,1,3]输出: 1示例 2:输入: [1,2,3,4,null,5,6,null,null,7]输出: 7 提示:二叉树的节点个数的范围是 [1,104]-231 ...原创 2022-06-22 21:03:49 · 146 阅读 · 0 评论 -
LeetCode-890. 查找和替换模式
你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母。)返回 words 中与给定模式匹配的单词列表。你可以按任何顺序返回答案。示例:输入:words = ["abc","deq","mee","aqq","dkd","ccc"],原创 2022-06-12 13:55:43 · 349 阅读 · 1 评论 -
LeetCode-1241. 每个帖子的评论数
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入...原创 2022-06-07 22:32:54 · 139 阅读 · 0 评论 -
LeetCode-1241. 每个帖子的评论数
表Submissions 结构如下:+---------------+----------+| 列名 | 类型 |+---------------+----------+| sub_id | int || parent_id | int |+---------------+----------+上表没有主键, 所以可能会出现重复的行。每行可以是一个帖子或对该帖子的评论。如果是帖子的话,parent_id 就是 nul...原创 2022-05-29 22:48:46 · 144 阅读 · 0 评论 -
LeetCode-1435. 制作会话柱状图
表:Sessions+---------------------+---------+| Column Name | Type |+---------------------+---------+| session_id | int || duration | int |+---------------------+---------+session_id 是该表主键duration 是用户访问应用的时间, 以秒...原创 2022-05-08 17:13:50 · 178 阅读 · 0 评论 -
LeetCode-388. 文件的最长绝对路径
假设有一个同时存储文件和目录的文件系统。下图展示了文件系统的一个示例:这里将 dir 作为根目录中的唯一目录。dir 包含两个子目录 subdir1 和 subdir2 。subdir1 包含文件 file1.ext 和子目录 subsubdir1;subdir2 包含子目录 subsubdir2,该子目录下包含文件 file2.ext 。在文本格式中,如下所示(⟶表示制表符):dir⟶ subdir1⟶ ⟶ file1.ext⟶ ⟶ subsubdir1⟶ subdir2⟶ ⟶原创 2022-04-23 12:00:13 · 136 阅读 · 0 评论 -
LeetCode-804. 唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如:'a' 对应 ".-" ,'b' 对应 "-..." ,'c' 对应 "-.-." ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-",".原创 2022-04-10 21:43:33 · 212 阅读 · 0 评论 -
LeetCode-589. N 叉树的前序遍历
给定一个 n叉树的根节点 root,返回 其节点值的 前序遍历 。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[1,3,5,6,2,4]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[...原创 2022-03-10 23:15:57 · 94 阅读 · 0 评论 -
LeetCode-146. LRU 缓存
请你设计并实现一个满足LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value)如果关键字key 已经存在,则变更其数据值value ;如果不存在,则向缓存中插入该组key-value 。如果插入操作导致关键...原创 2022-03-01 23:31:11 · 288 阅读 · 0 评论 -
LeetCode-1587. 银行账户概要 II
表: Users+--------------+---------+| Column Name | Type |+--------------+---------+| account | int || name | varchar |+--------------+---------+account 是该表的主键.表中的每一行包含银行里中每一个用户的账号.表: Transactions+---------------+---------...原创 2022-02-26 11:40:44 · 190 阅读 · 0 评论 -
LeetCode-1189. “气球” 的最大数量
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。示例 1:输入:text = "nlaebolko"输出:1示例 2:输入:text = "loonbalxballpoon"输出:2示例 3:输入:text = "leetcode"输出:0提示:1 <= text.length <=.原创 2022-02-13 20:39:41 · 114 阅读 · 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输出:"cca.原创 2022-02-07 22:22:25 · 230 阅读 · 0 评论 -
LeetCode-884. 两句话中的不常见单词
句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。示例 1:输入:s1 = "this apple is sweet", s2 = "this apple is sour"输出:["sweet","sour"]示例 2:输入:s1 = "apple apple", s原创 2022-01-30 23:28:59 · 574 阅读 · 0 评论 -
LeetCode-2034. 股票价格波动
给你一支股票价格的数据流。数据流中每一条记录包含一个 时间戳和该时间点股票对应的 价格。不巧的是,由于股票市场内在的波动性,股票价格记录可能不是按时间顺序到来的。某些情况下,有的记录可能是错的。如果两个有相同时间戳的记录出现在数据流中,前一条记录视为错误记录,后出现的记录 更正前一条错误的记录。请你设计一个算法,实现:更新 股票在某一时间戳的股票价格,如果有之前同一时间戳的价格,这一操作将更正之前的错误价格。找到当前记录里 最新股票价格。最新股票价格定义为时间戳最晚的股票价格。...原创 2022-01-23 22:29:17 · 152 阅读 · 0 评论 -
LeetCode-219. 存在重复元素 II
给你一个整数数组nums 和一个整数k ,判断数组中是否存在两个 不同的索引i和j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。示例1:输入:nums = [1,2,3,1], k = 3输出:true示例 2:输入:nums = [1,0,1,1], k = 1输出:true示例 3:输入:nums = [1,2,3,1,2,3], k = 2输出:false...原创 2022-01-20 00:02:32 · 435 阅读 · 0 评论 -
LeetCode-1716. 计算力扣银行的钱
Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。最开始,他在周一的时候存入 1块钱。从周二到周日,他每天都比前一天多存入 1块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1块钱。给你n,请你返回在第 n天结束的时候他在力扣银行总共存了多少块钱。示例 1:输入:n = 4输出:10解释:第 4 天后,总额为 1 + 2 + 3 + 4 = 10 。示例 2:输入:n = 10输出:37解释:第 10 天后,总额为 (1 + 2 + 3 ...原创 2022-01-15 14:07:11 · 197 阅读 · 0 评论 -
LeetCode-1629. 按键持续时间最长的键
LeetCode 设计了一款新式键盘,正在测试其可用性。测试人员将会点击一系列键(总计 n 个),每次一个。给你一个长度为 n 的字符串 keysPressed ,其中 keysPressed[i] 表示测试序列中第 i 个被按下的键。releaseTimes 是一个升序排列的列表,其中 releaseTimes[i] 表示松开第 i 个键的时间。字符串和数组的 下标都从 0 开始 。第 0 个键在时间为 0 时被按下,接下来每个键都 恰好 在前一个键松开时被按下。测试人员想要找出按键 持续时间最长原创 2022-01-09 22:42:49 · 102 阅读 · 0 评论 -
LeetCode-1576. 替换所有的问号
给你一个仅包含小写英文字母和 '?' 字符的字符串 s,请你将所有的 '?' 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 '?' 字符。题目测试用例保证 除 '?' 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。示例 1:输入:s = "?zs"输出:"azs"解释:该示例共有 25 种解决方案,从 "azs" 到原创 2022-01-05 22:56:49 · 109 阅读 · 0 评论 -
LeetCode-1185. 一周中的第几天
给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month 和year,分别表示日、月、年。您返回的结果必须是这几个值中的一个{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。示例 1:输入:day = 31, month = 8, year = 2019输出:"Saturday"示例 2:输入:day = 18, month = 7..原创 2022-01-04 21:58:42 · 218 阅读 · 0 评论 -
LeetCode-1490. 克隆 N 叉树
给定一棵 N 叉树的根节点root,返回该树的深拷贝(克隆)。N 叉树的每个节点都包含一个值( int)和子节点的列表( List[Node])。class Node { public int val; public List<Node> children;}N 叉树的输入序列用层序遍历表示,每组子节点用 null 分隔(见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[1,null,3,2,...原创 2022-01-02 10:10:36 · 284 阅读 · 0 评论 -
LeetCode-1078. Bigram 分词
给出第一个词first 和第二个词second,考虑在某些文本text中可能以 "first second third" 形式出现的情况,其中second紧随first出现,third紧随second出现。对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。示例 1:输入:text = "alice is a good girl she is a good student", first = "a", second = "good"输出:["gi...原创 2021-12-27 00:49:46 · 405 阅读 · 0 评论 -
LeetCode-1154. 一年中的第几天
给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。示例 1:输入:date = "2019-01-09"输出:9示例 2:输入:date = "2019-02-10"输出:41示例 3:输入:date = "2003-03-01"输出:60示例 4:原创 2021-12-21 21:34:40 · 123 阅读 · 0 评论 -
LeetCode-997. 找到小镇的法官
在一个小镇里,按从 1 到 n 为 n 个人进行编号。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么:小镇的法官不相信任何人。每个人(除了小镇法官外)都信任小镇的法官。只有一个人同时满足条件 1 和条件 2 。给定数组trust,该数组由信任对 trust[i] = [a, b]组成,表示编号为 a 的人信任编号为 b 的人。如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的编号。否则,返回 -1。示例 1:输入:n = 2, trust = ..原创 2021-12-19 13:33:35 · 88 阅读 · 0 评论 -
LeetCode-419. 甲板上的战舰
给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 board 上放置的 战舰 的数量。战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状建造,其中 k 可以是任意大小。两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。示例 1:输入:board = [["X",".",".","X"],[".","."原创 2021-12-19 10:22:07 · 214 阅读 · 0 评论 -
LeetCode-1005. K 次取反后最大化的数组和
给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:选择某个下标 并将 nums[i] 替换为 -nums[i] 。重复这个过程恰好 k 次。可以多次选择同一个下标 i 。以这种方式修改数组后,返回数组 可能的最大和 。示例 1:输入:nums = [4,2,3], k = 1输出:5解释:选择下标 1 ,nums 变为 [4,-2,3] 。示例 2:输入:nums = [3,-1,0,2], k = 3输出:6解释:选择下标 (1, 2, 2) ,num原创 2021-12-03 20:24:28 · 293 阅读 · 0 评论 -
LeetCode-859. 亲密字符串
给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回true;否则返回 false 。交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。例如,在 "abcd" 中交换下标 0 和下标 2 的元素可以生成 "cbad" 。示例 1:输入:s = "ab", goal = "ba"输出:true解释:你可以交换 s[0] = 'a' 和 s[1] ...原创 2021-11-23 23:56:54 · 244 阅读 · 0 评论 -
LeetCode-384. 打乱数组
给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。实现 Solution class:Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shuffle() 返回数组随机打乱后的结果示例:输入["Solution", "shuffle", "reset", "shuffle"][[[1, 2, 3]], [], [], []]输出[null, [3, 1, 2], [.原创 2021-11-22 23:10:50 · 109 阅读 · 0 评论 -
LeetCode-230. 二叉搜索树中第K小的元素
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第k个最小元素(从 1 开始计数)。示例 1:输入:root = [3,1,4,null,2], k = 1输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3输出:3提示:树中的节点数为 n 。1 <= k <= n <= 10的4次方0 <= Node.val <= 10的4次方...原创 2021-10-17 13:59:15 · 108 阅读 · 0 评论