![](https://img-blog.csdnimg.cn/20210926100844545.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode
文章平均质量分 56
leetcode
菊头蝙蝠
这个作者很懒,什么都没留下…
展开
-
leetcode-LCP 06. 拿硬币
桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。原创 2023-09-20 20:57:22 · 286 阅读 · 0 评论 -
leetcode-1710:卡车上的最大单元数
请你将一些箱子装在 一辆卡车 上。整数 truckSize 表示卡车上可以装载 箱子 的 最大数量。只要箱子数量不超过 truckSize ,你就可以选择任意箱子装到卡车上。返回卡车可以装载 单元 的 最大 总数。原创 2022-11-17 00:49:37 · 239 阅读 · 1 评论 -
leetcode-775:全局倒置与局部倒置
当数组 nums 中 全局倒置 的数量等于 局部倒置 的数量时,返回 true;否则,返回 false。给你一个长度为 n 的整数数组 nums ,表示由范围 [0, n - 1] 内所有整数组成的一个排列。因此只要出现非局部倒置的全局倒置,直接返回false即可。局部倒置一定是全局倒置。原创 2022-11-16 23:01:11 · 341 阅读 · 0 评论 -
leetcode-1620:网络信号最好的坐标
数组 towers 中包含一些网络信号塔,其中 towers[i] = [xi, yi, qi] 表示第 i 个网络信号塔的坐标是 (xi, yi) 且信号强度参数为 qi。如果一个坐标跟塔的距离在 radius 以内,那么该塔的信号可以到达该坐标。如果第 i 个塔能到达 (x, y) ,那么该塔在此处的信号为 ⌊qi / (1 + d)⌋ ,其中 d 是塔跟此坐标的距离。一个坐标的 信号强度 是所有 能到达 该坐标的塔的信号强度之和。如果有多个坐标网络信号一样大,请你返回字典序最小的 非负 坐标。原创 2022-11-06 18:31:15 · 265 阅读 · 0 评论 -
leetcode-1662:检查两个字符串数组是否相等
给你两个字符串数组 word1 和 word2。如果两个数组表示的字符串相同,返回 true;否则,返回 false。数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。过于简单,就不写了, 这种方法会浪费 存储拼接结果的空间。指向字符串中具体的字符。原创 2022-11-06 17:18:43 · 169 阅读 · 0 评论 -
leetcode-1668:最大重复子字符串
给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k 为 0。给你一个字符串 sequence 和 word ,请你返回 最大重复值 k。dp[i]表示以 sequence索引i-1为结尾时的最大重复次数。原创 2022-11-06 16:41:58 · 187 阅读 · 0 评论 -
leetcode-754:到达终点数字
第 i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。给定整数 target ,返回 到达目标所需的 最小 移动次数(即最小 numMoves )。在一根无限长的数轴上,你站在0的位置。终点在target的位置。每次你可以选择向左或向右移动。原创 2022-11-06 15:21:04 · 193 阅读 · 0 评论 -
leetcode-1678:设计 Goal 解析器
请你设计一个可以解释字符串 command 的 Goal 解析器。command 由 “G”、“()” 和/或 “(al)” 按某种顺序组成。Goal 解析器会将 “G” 解释为字符串 “G”、“()” 解释为字符串 “o” ,“(al)” 解释为字符串 “al”。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。原创 2022-11-06 01:35:07 · 142 阅读 · 0 评论 -
leetcode-1106: 解析布尔表达式
&(expr1,expr2,…)”,运算过程为对 2 个或以上内部表达式 expr1, expr2, …“|(expr1,expr2,…)”,运算过程为对 2 个或以上内部表达式 expr1, expr2, …进行逻辑 或的运算(OR)给你一个以字符串形式表述的 布尔表达式(boolean) expression,返回该式的运算结果。(expr)”,运算过程为对内部表达式 expr 进行逻辑 非的运算(NOT)“f”,运算结果为 False。“t”,运算结果为 True。的低位的两位,来表示。原创 2022-11-06 01:28:51 · 129 阅读 · 0 评论 -
leetcode-233:数字 1 的个数
给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。原创 2022-10-22 16:03:30 · 156 阅读 · 0 评论 -
leetcode-1700:无法吃午餐的学生数量
给你两个整数数组 students 和 sandwiches ,其中 sandwiches[i] 是栈里面第 i 个三明治的类型(i = 0 是栈的顶部), students[j] 是初始队列里第 j 名学生对三明治的喜好(j = 0 是队列的最开始位置)。学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。原创 2022-10-21 23:03:15 · 205 阅读 · 0 评论 -
leetcode-779:第K个语法符号
比如n=3,k=3的情况,此时 (3&1)=1,!(3&1)=0,0异或x=x,因此k为奇数的时候,就和父节点的值相等,因此递归去算父节点的值就行了。我们构建了一个包含 n 行( 索引从 1 开始 )的表。接下来的每一行,将前一行中的0替换为01,1替换为10。例如,对于 n = 3 ,第 1 行是 0 ,第 2 行是 01 ,第3行是 0110。给定行数 n 和序数 k,返回第 n 行中第 k 个字符。如果节点为左子节点,那么和父节点一样,如何节点为右子节点,那么和父节点值相反。原创 2022-10-21 22:14:08 · 124 阅读 · 0 评论 -
leetcode-901:股票价格跨度
例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。原创 2022-10-21 21:35:42 · 126 阅读 · 0 评论 -
leetcode-675:为高尔夫比赛砍树 (最短路径算法bfs,dijkstra,A*)
也是采用bfs的方法,只不过用【优化队列,每次取出路径最小(把 pair(路径,idx),放入优先队列即可)】的方法, 来取代方法一中的,【层次遍历+每层路径+1】的方法。每一步,你都可以向上、下、左、右四个方向之一移动一个单位,如果你站的地方有一棵树,那么你可以决定是否要砍倒它。你需要按照树的高度从低向高砍掉所有的树,每砍过一颗树,该单元格的值变为 1(即变为地面)。可以保证的是,没有两棵树的高度是相同的,并且你至少需要砍倒一棵树。比 1 大的数 表示有树的单元格,可以行走,数值表示树的高度。原创 2022-10-15 22:22:53 · 359 阅读 · 0 评论 -
leetcode-733:图像渲染
为了完成 上色工作 ,从初始像素开始,记录初始坐标的 上下左右四个方向上 像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应 四个方向上 像素值与初始坐标相同的相连像素点,……将所有有记录的像素点的颜色值改为 newColor。你应该从像素 image[sr][sc] 开始对图像进行 上色填充。有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。最后返回 经过上色渲染后的图像。原创 2022-10-15 16:55:40 · 143 阅读 · 0 评论 -
leetcode-695:岛屿的最大面积
岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0。给你一个大小为 m x n 的二进制矩阵 grid。岛屿的面积是岛上值为 1 的单元格的数目。原创 2022-10-15 16:25:40 · 201 阅读 · 0 评论 -
leetcode-566:重塑矩阵
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。原创 2022-10-15 15:24:13 · 181 阅读 · 0 评论 -
leetcode-529:扫雷游戏
给你一个整数数组 click ,其中 click = [clickr, clickc] 表示在所有 未挖出的 方块(‘M’ 或者 ‘E’)中的下一个点击位置(clickr 是行下标,clickc 是列下标)。让我们一起来玩扫雷游戏!原创 2022-10-15 14:37:18 · 816 阅读 · 0 评论 -
leetcode-1441:用栈操作构建数组
给你一个数组 target 和一个整数 n。每次迭代,需要从 list = { 1 , 2 , 3 …, n } 中依次读取一个数字。请返回构建目标数组所用的操作序列。如果存在多个可行方案,返回任一即可。题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。不存在的数,先Push,后Pop。存在的数,直接Push。原创 2022-10-15 00:21:12 · 124 阅读 · 0 评论 -
leetcode-817:链表组件
给定链表头结点 head,该链表上的每个结点都有一个 唯一的整型值。同时给定列表 nums,该列表是上述链表中整型值的一个子集。返回列表 nums 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 nums 中)构成的集合。原创 2022-10-15 00:05:57 · 180 阅读 · 0 评论 -
leetcode-940:不同的子序列 II
当i=2的时候,s[i]=‘c’,此时sum=4,有c,ac,bc,abc (在上面两种情况下,末尾都补c,还有加上单独一个c的情况)用一个数组存储26个字母结尾的字符串数量,每往后读一个就把整个数组全加起来再加一更新对应字母结尾的数组。例如,“ace” 是 “abcde” 的一个子序列,但 “aec” 不是。当i=1的时候,s[i]=‘b’ , 此时sum=2,有 b,ab。当i=0的时候,s[i]=‘a’,此时sum=1 ,有 a。当i=3的时候,s[i]=‘c’,此时sum=8,有。原创 2022-10-14 23:07:43 · 216 阅读 · 0 评论 -
leetcode-856:括号的分数
AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。原创 2022-10-10 00:01:31 · 289 阅读 · 0 评论 -
leetcode-417:太平洋大西洋水流问题
给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度。返回网格坐标 result 的 2D 列表 ,其中 result[i] = [ri, ci] 表示雨水从单元格 (ri, ci) 流动 既可流向太平洋也可流向大西洋。岛上雨水较多,如果相邻单元格的高度 小于或等于 当前单元格的高度,雨水可以直接向北、南、东、西流向相邻单元格。“太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。原创 2022-10-08 22:10:23 · 134 阅读 · 0 评论 -
leetcode-212:单词搜索 II
优化一。原创 2022-10-08 18:30:34 · 224 阅读 · 0 评论 -
leetcode-407:接雨水 II
给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。很快就想到将动态规划的方法从二维的接雨水引申到三维的接雨水中,但是存在侧漏的情况,如果仅仅只是求4个方向最高是不行的。就是先确定木桶的外围,找到外围的最短板子后对其周围能填水的地方填水,然后更新木桶外围。根据木桶原理,接到的雨水由容器周围最短的木板决定的,开始取决于最外圈。将3填充成了水,变成4,可以把它当作成新的容器的外圈,这样一步步迭代。通过优先队列,每次可以取到最短的木板。原创 2022-10-08 00:44:34 · 417 阅读 · 0 评论 -
leetcode-378:有序矩阵中第 K 小的元素
对于一个数mid,比它小的可以分为左上部分,比它大的可以分为右下部分,根据mid值,可以求出左上角的元素数量,可以跟k去比较。因此根据这个思路,可以进行二分查找,直接找值。check(mid)是false,说明左上角数量比较少,因此mid+1,值是每次+1,第一次出现num==k的时候,此时left就一定是出现在矩阵里的。给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。原创 2022-10-07 21:29:52 · 163 阅读 · 0 评论 -
leetcode-363:矩形区域不超过 K 的最大数值和
给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。矩形区域是由4条边来确定的,因此可以先固定上下两条边,和右边界。矩形的左边界,类似于两数之和的思路,可以采用二分查找的方式。题目数据保证总会存在一个数值和不超过 k 的矩形区域。存入set中,保证有序,可以采用二分查找的方式。依次枚举左上角和右下角这两个点,,因此要保证左边界要大于等于。原创 2022-10-07 18:47:25 · 220 阅读 · 0 评论 -
leetcode-329:矩阵中的最长递增路径
遍历每个点,然后朝四个方向dfs,由于只会朝着递增的方向dfs,因此不用关注再次遍历已经访问过的点,但是这种方式会超时。对于每个单元格,你可以往上,下,左,右四个方向移动。给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。解释:最长递增路径是 [3, 4, 5, 6]。解释:最长递增路径为 [1, 2, 6, 9]。,因为每个点最短递增路径就是1,就是仅包含自身。不为1了,说明已经更新了该点,直接使用就行了。拓扑排序的深度,就是最长的递增路径。更大的点,不可能访问。原创 2022-10-07 15:40:54 · 1390 阅读 · 0 评论 -
leetcode-289:生命游戏
每个细胞都具有一个初始状态: 1 即为 活细胞 (live),或 0 即为 死细胞 (dead)。输入:board = [[0,1,0],[0,0,1],[1,1,1],[0,0,0]]输出:[[0,0,0],[1,0,1],[0,1,1],[0,1,0]]2.如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;1.如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;3.如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡;输出:[[1,1],[1,1]]原创 2022-10-07 14:03:42 · 980 阅读 · 0 评论 -
leetcode-1800:最大升序子数组和
已知子数组 [numsl, numsl+1, …, numsr-1, numsr] ,若对所有 i(l原创 2022-10-07 13:24:20 · 89 阅读 · 0 评论 -
leetcode-174:地下城游戏
有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健康点数)。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。例如,考虑到如下布局的地下城,如果骑士遵循最佳路径 右 -> 右 -> 下 -> 下,则骑士的初始健康点数至少为 7。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。原创 2022-10-06 23:30:00 · 159 阅读 · 0 评论 -
leetcode-130:被围绕的区域
给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。开始dfs,对其进行标记。原创 2022-10-06 15:59:53 · 118 阅读 · 0 评论 -
leetcode-74:搜索二维矩阵
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。可以将二维展开成一维,然后就可以使用二分查找了。从右上角出发,可以看成二叉搜索树。原创 2022-10-04 20:26:44 · 103 阅读 · 0 评论 -
leetcode-921:使括号有效的最少添加
给定一个括号字符串 s ,移动N次,你就可以在字符串的任何位置插入一个括号。返回 为使结果字符串 s 有效而必须添加的最少括号数。原创 2022-10-04 19:54:25 · 150 阅读 · 0 评论 -
leetcode-92:反转链表 II
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left原创 2022-10-03 20:42:20 · 139 阅读 · 0 评论 -
leetcode-41:缺失的第一个正数
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。原创 2022-10-03 16:34:38 · 128 阅读 · 0 评论 -
leetcode-86:分隔链表
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。原创 2022-10-03 15:35:35 · 131 阅读 · 0 评论 -
leetcode-1694:重新格式化电话号码
最后用破折号将这些块连接起来。注意,重新格式化过程中 不应该 生成仅含 1 个数字的块,并且 最多 生成两个含 2 个数字的块。给你一个字符串形式的电话号码 number。number 由数字、空格 ’ '、和破折号 ‘-’ 组成。其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。4 个数字:两个分别含 2 个数字的块。2 个数字:单个含 2 个数字的块。3 个数字:单个含 3 个数字的块。请你按下述方式重新格式化电话号码。首先,删除 所有的空格和破折号。返回格式化后的电话号码。原创 2022-10-03 14:48:33 · 92 阅读 · 0 评论 -
leetcode-777:在LR字符串中交换相邻字符
此题和leetcode-2337:移动片段得到字符串基本一样。原创 2022-10-03 12:16:07 · 113 阅读 · 0 评论 -
leetcode-1784:检查二进制字符串字段
如果 s 中 由连续若干个 ‘1’ 组成的字段 数量不超过 1,返回 true。否则,返回 false。如果 s 包含 零个或一个由连续的 ‘1’ 组成的字段 ,返回 true。否则,返回 false。如果出现 1—>0---->1这个状态变化,就return false;给你一个二进制字符串 s ,该字符串 不含前导零。原创 2022-10-03 10:27:11 · 99 阅读 · 0 评论