自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 收藏
  • 关注

原创 1302.层数最深叶子节点的和

给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 。

2022-08-17 20:47:02 143 1

原创 1656.设计有序流

如果流存储有 id = ptr 的 (id, value) 对,则找出从 id = ptr 开始的 最长 id 连续递增序列 ,并 按顺序 返回与这些 id 关联的值的列表。有 n 个 (id, value) 对,其中 id 是 1 到 n 之间的一个整数,value 是一个字符串。// 插入 (2, "bbbbb"),返回 ["bbbbb", "ccccc"]// 插入 (4, "ddddd"),返回 ["ddddd", "eeeee"]// 插入 (1, "aaaaa"),返回 ["aaaaa"]...

2022-08-16 20:48:06 150

原创 641.设计循环双端队列

/ 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。boolean isEmpty() :若双端队列为空,则返回 true ,否则返回 false。链接:https://leetcode.cn/problems/design-circular-deque。boolean isFull() :若双端队列满了,则返回 true ,否则返回 false。int getFront() ):从双端队列头部获得一个元素。...

2022-08-15 20:10:15 135

原创 1282.用户分组

第二组是 [0,1,2],大小为 3,groupSizes[0] = groupSizes[1] = groupSizes[2] = 3。第三组是 [3,4,6],大小为 3,groupSizes[3] = groupSizes[4] = groupSizes[6] = 3。其他可能的解决方案有 [[2,1,6],[5],[0,4,3]] 和 [[5],[0,6,2],[4,3,1]]。输出:[[5],[0,1,2],[3,4,6]]输出:[[1],[0,5],[2,3,4]]...

2022-08-12 18:00:15 136

原创 1417.重新格式化字符串

解释:"0a1b2c" 中任意两个相邻字符的类型都不同。"a0b1c2", "0a1b2c", "0c2a1b" 也是满足题目要求的答案。解释:"1229857369" 中只有数字,所以无法满足重新格式化的条件。解释:"leetcode" 中只有字母,所以无法满足重新格式化的条件。输入:s = "1229857369"输入:s = "covid2019"输入:s = "leetcode"输入:s = "a0b1c2"输出:"c2o0v1i9d"输入:s = "ab123"输出:"0a1b2c"...

2022-08-11 22:02:16 60

原创 623.在二叉树中增加一行

题目描述给定一个二叉树的根 root 和两个整数 val 和 depth ,在给定的深度 depth 处添加一个值为 val 的节点行。注意,根节点 root 位于深度 1 。加法规则如下: 给定整数 depth,对于深度为 depth - 1 的每个非空树节点 cur ,创建两个值为 val 的树节点作为 cur 的左子树根和右子树根。 cur 原来的左子树应该是新的左子树根的左子树。 cur 原来的右子树应该是新的右子树根的右子树。 如果 depth == 1 意味着 de

2022-08-05 20:01:57 63

原创 622.设计循环队列

在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。链接:https://leetcode.cn/problems/design-circular-queue。enQueue(value): 向循环队列插入一个元素。// 返回 false,队列已满。deQueue(): 从循环队列中删除一个元素。// 返回 true。// 返回 true。// 返回 true。// 返回 true。isEmpty(): 检查循环队列是否为空。isFull(): 检查循环队列是否已满。...

2022-08-02 20:55:01 66

原创 919.完全二叉树插入器

CBTInserter.insert(intv)向树中插入一个值为Node.val==val的新节点TreeNode。使树保持完全二叉树的状态,并返回插入节点TreeNode的父节点的值;链接https//leetcode.cn/problems/complete-binary-tree-inserter。完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。CBTInserter.get_root()将返回树的头节点。...

2022-07-25 17:50:14 50

原创 814.二叉树剪枝

给你二叉树的根结点root,此外树的每个结点的值要么是0,要么是1。节点node的子树为node本身加上所有node的后代。输入root=[1,1,0,1,1,0,1,0]输入root=[1,0,1,0,0,0,1]树中节点的数目在范围[1,200]内。输入root=[1,null,0,0,1]返回移除了所有不包含1的子树的原二叉树。输出[1,1,0,1,1,null,1]输出[1,null,0,null,1]输出[1,null,1,null,1]......

2022-07-21 19:06:28 74

原创 1260.二维网格迁移

输入grid=[[3,8,1,9],[19,7,2,5],[4,6,11,10],[12,0,21,13]],k=4。输出[[12,0,21,13],[3,8,1,9],[19,7,2,5],[4,6,11,10]]输入grid=[[1,2,3],[4,5,6],[7,8,9]],k=1。输入grid=[[1,2,3],[4,5,6],[7,8,9]],k=9。输出[[9,1,2],[3,4,5],[6,7,8]]请你返回k次迁移操作后最终得到的二维网格。...

2022-07-20 19:14:37 53

原创 731.我的日程安排表II

它意味着在start到end时间内增加一个日程安排,注意,这里的时间是半开区间,即[start,end),实数x的范围为,start

2022-07-19 18:20:58 74

原创 565.数组嵌套

因为数据不含有重复元素,也就是要寻找最大环。以此类推,不断添加直到。

2022-07-18 17:53:32 41

原创 522. 最长特殊序列 II

题目描述给定字符串列表 strs ,返回其中 最长的特殊序列 。如果最长特殊序列不存在,返回 -1 。特殊序列 定义如下:该序列为某字符串 独有的子序列(即不能是其他字符串的子序列)。 s 的 子序列可以通过删去字符串 s 中的某些字符实现。 例如,"abc" 是 "aebdc" 的子序列,因为您可以删除"aebdc"中的下划线字符来得到 "abc" 。"aebdc"的子序列还包括"aebdc"、 "aeb" 和 "" (空字符串)。示例 1:输入: strs = ["aba","cdc","eae"

2022-06-27 20:23:21 58

原创 532.数组中的k-diff数对

题目描述给你一个整数数组 nums 和一个整数 k,请你在数组中找出 不同的 k-diff 数对,并返回不同的 k-diff 数对 的数目。k-diff 数对定义为一个整数对 (nums[i], nums[j]) ,并满足下述全部条件: 0

2022-06-16 20:42:31 178

原创 498.对角线遍历

题目描述给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。示例 1: 输入:mat = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,4,7,5,3,6,8,9]示例 2:输入:mat = [[1,2],[3,4]] 输出:[1,2,3,4]提示: m == mat.length n == mat[i].length 1 ...

2022-06-14 20:49:18 76

原创 1051.高度检查器

题目描述学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。给你一个整数数组 heights ,表示 当前学生站位 的高度情况。heights[i] 是这一行中第 i 位学生的高度(下标从 0 开始)。返回满足 heights[i] != expected[i] 的 下标数量 。示例:输入:heights = [1,1,4,2,1

2022-06-13 12:59:53 60

原创 1037.有效的回旋镖

题目描述给定一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点,如果这些点构成一个 回旋镖 则返回 true 。回旋镖 定义为一组三个点,这些点 各不相同 且 不在一条直线上 。示例 1:输入:points = [[1,1],[2,3],[3,2]] 输出:true示例 2:输入:points = [[1,1],[2,2],[3,3]] 输出:false提示: points.length == 3 points[i].length == 2

2022-06-08 16:14:46 67

原创 875.爱吃香蕉的珂珂

题目描述珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 k 根。如果这堆香蕉少于 k 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 h 小时内吃掉所有香蕉的最小速度 k(k 为整数)。示例 1:输入:piles = [3,6,7,11], h = 8 输出:4示例 2:

2022-06-08 16:13:02 54

原创 732.我的日程安排表III

题目描述当 k 个日程安排有一些时间上的交叉时(例如 k 个日程安排都在同一时间内),就会产生 k 次预订。给你一些日程安排 [start, end) ,请你在每个日程安排添加后,返回一个整数 k ,表示所有先前日程安排会产生的最大 k 次预订。实现一个 MyCalendarThree 类来存放你的日程安排,你可以一直添加新的日程安排。 MyCalendarThree() 初始化对象。 int book(int start, int end) 返回一个整数 k ,表示日历中存在的 k 次预订的

2022-06-06 19:49:33 81

原创 450.删除二叉搜索树中的节点

题目描述给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。示例 1:输入:root = [5,3,6,2,4,null,7], key = 3 输出:[5,4,6,2,null,null,7] 解释:给定需要删除的节点值是 3,所以我们首先找到 3 这个节点,然后删除它。 一个正确的答案是 [5

2022-06-02 18:30:56 41

原创 473.火柴拼正方形

题目描述你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍 拼成一个正方形。你 不能折断 任何一根火柴棒,但你可以把它们连在一起,而且每根火柴棒必须 使用一次 。如果你能使这个正方形,则返回 true ,否则返回 false 。示例 1:输入: matchsticks = [1,1,2,2,2] 输出: true 解释: 能拼成一个边长为2的正方形,每边两根火柴。示例 2:输入: matchsticks = [3,3,3,3,4

2022-06-02 14:07:35 166

原创 面试题17.11.单词距离

题目描述 有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗? 示例: 输入:words = ["I","am","a","student","from","a","university","in","a","city"], word1 = "a", word2 = "student" 输出:1 提示: words.length <= 100000 来源:力...

2022-05-27 17:16:25 101

原创 467.环绕字符串中唯一的子字符串

题目描述 把字符串 s 看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串,所以 s 看起来是这样的: "...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd...." . 现在给定另一个字符串 p 。返回 s 中 唯一 的 p 的 非空子串 的数量 。 示例 1: 输入: p = "a" 输出: 1 解释: 字符串 s 中只有一个"a"子字符。 示例 2: 输入: p = "cac" 输出

2022-05-25 14:34:32 99

原创 965.单值二叉树

题目描述 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例 1: 输入:[1,1,1,1,1,null,1] 输出:true 示例 2: 输入:[2,2,2,5,2] 输出:false 提示: 给定树的节点数范围是 [1, 100]。 每个节点的值都是整数,范围为 [0, 99] 。 来源:力扣(LeetCode) 链接:https://leetcode.c...

2022-05-24 13:57:57 62

原创 436.寻找右区间

题目描述 给你一个区间数组 intervals ,其中 intervals[i] = [starti, endi] ,且每个 starti 都 不同 。 区间 i 的 右侧区间 可以记作区间 j ,并满足 startj >= endi ,且 startj 最小化 。 返回一个由每个区间 i 的 右侧区间 的最小起始位置组成的数组。如果某个区间 i 不存在对应的 右侧区间 ,则下标 i 处的值设为 -1 。 示例 1: 输入:intervals = [[1,2]] 输出:[-1] 解释:集.

2022-05-20 15:31:47 85

原创 462.最少移动次数使数组元素相等II

题目描述 给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。 在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。 示例 1: 输入:nums = [1,2,3] 输出:2 解释: 只需要两步操作(每步操作指南使一个元素加 1 或减 1): [1,2,3] => [2,2,3] => [2,2,2] 示例 2: 输入:nums = [1,10,2,9] 输出:16 提示: n == nums.length 1 &

2022-05-19 15:32:26 118

原创 953.验证外星语词典

题目描述 某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。 示例 1: 输入:words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz" 输出:true 解释:在该语言的字母表中,'h' 位于 'l' 之前

2022-05-17 16:19:45 88

原创 面试题04.06.后继者

题目描述 设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。 如果指定节点没有对应的“下一个”节点,则返回null。 示例 1: 输入: root = [2,1,3], p = 1 2 / \ 1 3 输出: 2 示例 2: 输入: root = [5,3,6,2,4,null,null,1], p = 6 5 / \ 3 6 / \ 2 4 / 1 输出: null 通过次数47,425 提交次数...

2022-05-16 19:54:21 69

原创 面试题01.05.一次编辑

题目描述 字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 示例 1: 输入: first = "pale" second = "ple" 输出: True 示例 2: 输入: first = "pales" second = "pal" 输出: False 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/one-away-lcci 方法一: .

2022-05-13 15:37:02 57

原创 944.删列造序

题目描述 给你由 n 个小写字母字符串组成的数组 strs,其中每个字符串长度相等。 这些字符串可以每个一行,排成一个网格。例如,strs = ["abc", "bce", "cae"] 可以排列为: abc bce cae 你需要找出并删除 不是按字典序升序排列的 列。在上面的例子(下标从 0 开始)中,列 0('a', 'b', 'c')和列 2('c', 'e', 'e')都是按升序排列的,而列 1('b', 'c', 'a')不是,所以要删除列 1 。 返回你需要删除的列数。 示例

2022-05-12 17:50:54 43

原创 942.增减字符串匹配

题目描述 由范围 [0,n] 内所有整数组成的 n + 1 个整数的排列序列可以表示为长度为 n 的字符串 s ,其中: 如果 perm[i] < perm[i + 1] ,那么 s[i] == 'I' 如果 perm[i] > perm[i + 1] ,那么 s[i] == 'D' 给定一个字符串 s ,重构排列 perm 并返回它。如果有多个有效排列perm,则返回其中 任何一个 。 示例 1: 输入:s = "IDID" 输出:[0,4,1,3,2] 示例 ...

2022-05-09 21:27:37 45

原创 933.最近的请求次数

题目描述 写一个 RecentCounter 类来计算特定时间范围内最近的请求。 请你实现 RecentCounter 类: RecentCounter() 初始化计数器,请求数为 0 。 int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。 保证 每次对 ping 的调用都使用比之前更大的 t 值。 示例 1: ...

2022-05-06 15:28:09 111

原创 713.乘积小于K的子数组

题目描述 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例 1: 输入:nums = [10,5,2,6], k = 100 输出:8 解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。 需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。 示例 2: 输入:nums = [1,2,3], k = 0 输出:0 提示:

2022-05-05 20:08:05 41

原创 1823.找出游戏的获胜者

题目描述 共有 n 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。 游戏遵循如下规则: 从第 1 名小伙伴所在位置 开始 。 沿着顺时针方向数 k 名小伙伴,计数时需要 包含 起始时的那位小伙伴。逐个绕圈进行计数,一些小伙伴可能会被数过不止一次。 你数到的最后一名小伙...

2022-05-04 21:46:27 130

原创 1305.两棵二叉搜索树中的所有元素

题目描述 给你 root1 和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。. 示例 1: 输入:root1 = [2,1,4], root2 = [1,0,3] 输出:[0,1,1,2,3,4] 示例 2: 输入:root1 = [1,null,8], root2 = [8,1] 输出:[1,1,8,8] 提示: 每棵树的节点数在 [0, 5000] 范围内 -105 <= Node.val...

2022-05-02 16:46:10 62

原创 427.建立四叉树

题目描述 给你一个 n * n 矩阵 grid ,矩阵由若干 0 和 1 组成。请你用四叉树表示该矩阵 grid 。 你需要返回能表示矩阵的 四叉树 的根结点。 注意,当 isLeaf 为 False 时,你可以把 True 或者 False 赋值给节点,两种值都会被判题机制 接受 。 四叉树数据结构中,每个内部节点只有四个子节点。此外,每个节点都有两个属性: val:储存叶子结点所代表的区域的值。1 对应 True,0 对应 False; isLeaf: 当这个节点是一个叶子结点...

2022-04-29 22:36:47 107

原创 905.按奇偶排序数组

题目描述 给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 示例 1: 输入:nums = [3,1,2,4] 输出:[2,4,3,1] 解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。 示例 2: 输入:nums = [0] 输出:[0] 提示: 1 <= nums.length <= 5000 0 <= nums[i]...

2022-04-28 15:24:12 73

原创 417.太平洋大西洋水流问题

题目描述 有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度 。 岛上雨水较多,如果相邻单元格的高度 小于或等于 当前单元格的高度,雨水可以直接向北、南、东、西流向相邻单元格。水可以从海洋附近的任何单元格流入海洋。 返回 网格坐标

2022-04-27 18:05:00 165

原创 647.回文子串

题目描述 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:s = "abc" 输出:3 解释:三个回文子串: "a", "b", "c" 示例 2: 输入:s = "aaa" 输出:6 解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"

2022-04-26 16:55:33 64

原创 5.最长回文子串

题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 提示: 1 <= s.length <= 1000 s 仅由数字和英文字母组成 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindromic-substring...

2022-04-26 16:31:08 48

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除