Leetcode刷题笔记
YoloMari
悟已往之不谏,知来者之可追。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode刷题-枚举右,维护左
【代码】Leetcode刷题-枚举右,维护左。原创 2025-03-12 23:32:53 · 408 阅读 · 0 评论 -
Leetcode刷题-不定长窗口求最短/最小
使用变长滑动窗口,并将target转化为target % sum(nums),这样就可以大大减少循环次数,如果不做处理就会超时。原创 2025-03-12 00:00:25 · 352 阅读 · 0 评论 -
Leetcode刷题-双指针(原地修改)
思路:使用双指针,保证left指针前面的全都是不为0的数,并在遍历时对数组进行操作。原创 2025-02-04 22:28:17 · 342 阅读 · 0 评论 -
Leetcode刷题-不定长滑动窗口
思路:使用变长滑动窗口,先对数组进行排序,每次加入元素时将所有在窗口内的元素递增到最大那个数(也就是当前加入的数),由于前面有i - left个元素已经递增到第 i 个数,所以此时需要递增(nums[i] - nums[i - 1]) * (i - left)次,当递增次数大于k时,持续移动左端点直到小于k为止。思路:使用一个哈希表存储每次摘的水果,当采摘的水果种类大于2时,窗口的左端点向右一直移动,知道采摘的水果种类不超过2为止,然后记录每次移动左端或者右端后窗口的值,最大值即为答案。原创 2025-01-30 00:07:26 · 468 阅读 · 0 评论 -
Leetcode刷题-滑动窗口
思路:先统计在不使用情绪控制技巧的情况下能让多少顾客满意,然后在此基础上使用情绪控制技巧。思路:使用定长滑动窗口找出所有的长度为k的二进制子串,而长度为k的子串有 2k 2^{k}2k个,所以我们只要使用集合将一个字符串的所有长度为k的子串的数量计算出来,再与2k 2^{k}2k对比就可以得到答案了。(字符串长度小于2k 2^{k}2k的可以直接判False,因为长度小于2k 2^{k}2k的字符串不能产生2k 2^{k}2k个子串)思路:将题目转化为求数组中2*k+1个连续数字的平均值。原创 2025-01-25 23:01:13 · 369 阅读 · 0 评论 -
Leetcode刷题-二分查找
排序,然后进行二分查找。排序后顺序可能会混乱,题目要求的是下标 i < j。假设数对(i,j),i < j 满足nums[i] + nums[j] >= lower && nums[i] + nums[j] <= upper,那么数对(j,i)也满足,所以在结果上这两个数组是等价的,但由于题目要求只要(i,j),所以取其中一半即可,也就是我们可以忽略对原数组排序后下标的改变,保证只计入(i,j)或者(j,i)其中一种到答案中即可。先记录每个数字出现的位置,再用二分查找找出满足的位置,先找左端,再找右端。原创 2025-01-21 22:37:53 · 257 阅读 · 0 评论 -
Leetcode刷题-编程基础
在MySQL中,需要对NULL进行特殊判断,上题中如果只判断是否等于2,会忽略掉id为NULL的行。(MySQL使用三值逻辑——TRUE,FALSE和UNKNOWN)当我们拿一个非NULL值和一个NULL值,或者两个NULL值来比较时,会返回UNKNOWN。原创 2025-01-19 12:26:41 · 275 阅读 · 0 评论 -
Leetcode刷题笔记-LogTrick
关于LogTrick的知识可以看看这篇博客。原创 2025-01-18 12:25:50 · 232 阅读 · 0 评论
分享