![](https://img-blog.csdnimg.cn/8a527e4ac0c34305bb486bb9c7dcf134.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode刷题 总结
文章平均质量分 57
刷leetcode 刷leetcode 刷leetcode !!!
Alkali!
本科:NUAACCST16191
硕士:SEUCSE220
展开
-
暑期代码每日一练Day3:874. 模拟行走机器人
因为负数对正数去模,还是负数,就出了范围,这里我们通过加上一个模数4的倍数,来使结果始终为正数。始终只有0、1、2、3这四个取值,指示北、东、南、西四个方向,那么怎么实现。我们可以利用去模运算,假设我们初始面向北方,即。为0,那么当我们想向左转的时候,是面向西方,则。要相应的变为3,这时,我们进行的操作是。在这三个取值之间来回有序切换呢?来指示当前处于什么方向,这道题就是个简单的模拟。我们可以使用一个变量。原创 2023-07-19 11:02:55 · 325 阅读 · 0 评论 -
暑期代码每日一练Day2:1851. 包含每个查询的最小区间
因为当区间集合按左端点升序排序以及查询集合升序排序以后,我们放入优先队列中的左端点小于等于当前查询点的区间,对于后面的查询点,其左端点依然小于等于它们。这里的剔除操作,对后续的查询点,也是有效的,因为被剔除的区间的右端点小于当前查询点,那自然也会小于后续的查询点(查询集合按升序排序)。:对于查询集合中每个待查询的点,问在区间集合中是否存在区间能够包含该点,如果没有,则查询结果表示为。区间两边都是闭合的,由两个端点组成,查询的集合里是一个个待查询的点。数组中,要求查询结果的顺序与查询的顺序一致。原创 2023-07-18 23:57:29 · 66 阅读 · 0 评论 -
暑期代码每日一练Day1:415. 字符串相加
题目意思是给你两个纯数字 字符串(表示的是一个有意义的正整数),让你算出这两个字符串表示的数字的和,最后返回以字符串表示的结果,其中的过程不能直接将初始给定的两个字符串直接转化为数字。原创 2023-07-17 16:58:39 · 114 阅读 · 0 评论 -
leetcode 55.跳跃游戏 贪心
每次取最大跳跃步数(取最大覆盖范围),最后看最大覆盖范围,看是否能到终点,可以用贪心的方法解决这个问题。如果一个位置能够到达,那么这个位置左侧所有位置都能到达。贪心的本质是选择每一阶段的局部最优,从而达到全局最优。,在往右移动的过程中,不断维护能跳跃到的最大下标。时,一定是在终点之前停下了,且不能再往右跳。,这个值大于等于 最后一个位置的下标。为起点,它能跳跃到的最大下标为。,那么最后一个位置可以到达。原创 2022-09-07 17:29:14 · 740 阅读 · 1 评论 -
leetcode 139.单词拆分 BFS
【代码】leetcode 139.单词拆分 BFS。原创 2022-09-03 21:07:53 · 160 阅读 · 0 评论 -
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 二分法
这是道二分法的裸题,直接二分去做就行了。原创 2022-08-22 17:39:55 · 146 阅读 · 0 评论 -
leetcode 33.搜索旋转排序数组 二分法
拿示例来看,我们从 6 这个位置分开以后数组变成了 [4, 5, 6] 和 [7, 0, 1, 2] 两个部分,其中左边 [4, 5, 6] 这个部分的数组是有序的,其他也是如此。无序部分再一分为二,其中一个一定有序,另一个可能有序,可能无序。这启示我们可以在常规二分查找的时候查看当前 mid 为分割位置分割出来的两个部分。将数组一分为二,其中一定有一个是有序的,另一个可能是有序,也能是部分有序。,因为我们能够根据有序的那部分判断出。将数组从中间分开成左右两部分的时候,哪个部分是有序的,并。原创 2022-08-22 16:54:35 · 201 阅读 · 0 评论 -
leetcode 43.字符串相乘 模拟乘法
上游走,计算乘积,同时将乘积叠加到。可以说是非常大,所以几乎不可能说先将。整个计算过程大概是这样,有两个指针。必须对整个乘法的过程进行模拟。原创 2022-08-22 10:23:08 · 86 阅读 · 0 评论 -
leetcode 93. 复原 IP 地址 暴力模拟解
即可,可以枚举下标,点的位置即为所枚举到的下标的后一个位置。一个IPv4地址,有3个点,这里直接。原创 2022-08-20 23:44:50 · 166 阅读 · 0 评论 -
leetcode 20.有效的括号 栈
注意一下,如果字符串长度为1,则肯定不符合条件,返回false。原创 2022-08-18 14:15:02 · 228 阅读 · 0 评论 -
leetcode 210. 课程表 II 拓扑排序
代码】leetcode 210. 课程表 II 拓扑排序。原创 2022-08-16 17:02:30 · 104 阅读 · 0 评论 -
leetcode 1094. 拼车 差分
很简单的差分题。原创 2022-08-16 15:38:04 · 149 阅读 · 0 评论 -
leetcode 122. 买卖股票的最佳时机 II 贪心
代码】leetcode 122. 买卖股票的最佳时机 II 贪心。原创 2022-08-16 15:05:52 · 72 阅读 · 0 评论 -
leetcode 121. 买卖股票的最佳时机 贪心
因为股票就买卖一次,那么贪心的想法很自然就是。,那么得到的差值就是最大利润。原创 2022-08-16 14:45:12 · 93 阅读 · 0 评论 -
leetcode 437.路径总和 III 前缀和+哈希表优化
那么sum很有可能就爆了int,所以得开。二叉树的节点个数的范围是。而int的范围为2×10。原创 2022-08-16 11:10:41 · 96 阅读 · 0 评论 -
leetcode 1248.统计【优美子数组】 前缀和+哈希表优化
只是560题中前缀和是真的存储的前缀和,本题前缀和存储的是。这题的思路可以完全借鉴。原创 2022-08-15 16:43:23 · 200 阅读 · 0 评论 -
leetcode 560.和为K的子数组 前缀和+哈希表优化
的计算只与前一项的答案有关,因此我们可以不用建立。的连续子数组个数,我们需要统计符合条件的下标。最后的答案即为所有下标结尾的和为。的连续子数组个数时只要统计有多少个前缀和为。,请你统计并返回 该数组中和为。出现的次数,从左往右边更新。的连续子数组的个数。这个子数组的和恰好为。需要注意的是,从左往右。.........原创 2022-08-15 16:12:59 · 186 阅读 · 0 评论 -
leetcode 1208.尽可能使字符串相等 滑动窗口
由于 \textit{diff}diff 的的每个元素都是非负的,因此可以用滑动窗口的方法得到符合要求的最长子数组的长度。遍历结束之后,即可得到符合要求的最长子数组的长度,即字符串可以转化的最大长度。的子数组的开始下标和结束下标,满足子数组的元素和不超过。的值,判断子数组的元素和是否大于。滑动窗口的思想是,维护两个指针。在移动两个指针的过程中,更新。另外还要维护子数组的元素和。,因此可以创建一个长度为。之后,问题转化成计算数组。,并决定应该如何移动指针。......原创 2022-08-14 16:22:45 · 151 阅读 · 0 评论 -
leetcode 1004.最大连续1的个数 III 滑动窗口
我们只需要知道 left 和 right 作为下标在前缀和数组中对应的值,因此我们只需要用两个变量 lsum 和rsum 记录 left 和right 分别对应的前缀和即可。在 right 向右移动的过程中,我们同步移动left,直到 left 为首个(即最小的)满足 上式的位置,此时我们就可以使用此区间对答案进行更新了。我们继续观察上式,由于前缀和数组 P 是单调递增的,那么 上 式的右侧 P[right]−k 同样也是单调递增的。随着 right 的增大,满足 上式的最小的 left 值是单调递增的。.原创 2022-08-14 11:30:47 · 198 阅读 · 0 评论 -
leetcode 1282.用户分组 哈希表
遍历一遍数组,将信息保存在哈希表上,哈希表表头为。每当链的长度等于组的大小时,存入答案一次。原创 2022-08-14 10:38:50 · 138 阅读 · 0 评论