Leetcode 题解记录
Leetcode 随笔,随缘更新。
Jonathanw6
I can do all things.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 题解记录 239. 滑动窗口最大值
这道题读完后我们很容易先想到用排序和队列,每次滑动相当于左边出队右边入队,如果我们能维护一个有序队列,每次输出最大的队头,那么这道题就迎刃而解了。答案是否定的,因为直到新元素退出前它的优先级都盖过了老元素,那么这些又小又老的元素就可以直接丢弃了!另外因为窗口一直在滑动,时代一直在更迭,我们仍然需要判断队头的元素是否过期,并丢弃已经过期的大元素。接下来就遍历入队,每次清除队头下标超出窗口左边界的元素,达到窗口大小后就可以开始愉快的输出了!“滑动窗口最大值”这个问题的本质,可以被抽象为:“如何在一个。原创 2025-09-09 12:54:06 · 271 阅读 · 0 评论 -
Leetcode 题解记录 541. 541. 反转字符串 II
第一次AC用的是不太简洁的方法,因为担心最后一次的异常处理问题,所以每次只让下标前进k步,用一个二进制数来表示当前这个阶段要不要reverse。如果要的话就判断是否到string的末尾,做一次特殊值处理。一方面避免这种坑点,一方面后面再用到字符串长度可以少打几个字符。(Gemini老师表示同意)核心思想是通过比较i + k 和总长度的大小来确定右边界。又是一道简单题,但居然也能学到东西?刚写完觉得贼巧妙,一看官解有点想笑。不写不知道,一写吓一跳。这样一来应该每次先写一行。原创 2025-08-28 20:25:23 · 263 阅读 · 0 评论 -
Leetcode 题解记录 34. 反转字符串
设置一头一尾两个指针,向中间一边走一边交换就行了。我最开始的思路是用于一个for循环从头遍历,根据总长度算出它对称的元素下标,确实没有双指针法清晰优雅哈哈。感觉Gemini老师写的代码还是看着舒服啊,古法编程真的有必要存在吗。(又是双指针法,这个世界就是一个巨大的双指针?主要记忆两个标准库函数的使用,一个是交换两元素。一个是直接cheat做完本题的办法。原创 2025-08-28 16:30:36 · 392 阅读 · 0 评论 -
Leetcode 题解记录 18. 四数之和
因为如果target是负数,nums[i]也是负数,此时就算满足nums[i] > target,后面仍然可能有负数让和更小也就是更接近target。容易犯错误的点主要在第三步,要考虑清楚边界条件,尤其像这道题在去重时,判断固定的第二个元素的下标也就是j的时候应该与i + 1相比而不是1。这是相对位置和绝对位置的区别,一定要注意。还有一个细节就是最终的和可能会超过int的范围,最好用long long来存。正确的做法在代码注释中讲解。差不多,感兴趣的朋友可以去看我之前发过的博客。这道题思路跟我之前发过的。原创 2025-08-28 16:07:07 · 244 阅读 · 0 评论 -
Leetcode 题解记录 15. 三数之和
我们回忆一下两数之和的做法,给定一个整数target和一个超大数组,问你有多少种组成target的元组。我们很快发现暴力遍历关键的劣势,在于多次重复遍历已经遍历过的元素。但这道题问的是元组个数,所以存储的key-value应该是和-频数。总结下来这道题的难度确实不算太大,但要考虑的边界条件等细节很多,且对于去重的实现也需要想清楚。那么这道题同样可以降维成寻找两数之和满足target的元素,但这道题要的是元组本身,且。我们可以先将数组按升序排序,然后固定第一个数,从后面序列的。又是经典的n数之和的变体。原创 2025-08-28 10:17:09 · 327 阅读 · 0 评论 -
Leetcode 题解记录 454. 四数相加 II
逆天复杂度,肯定超时了。大概能想到是拆两半,用哈希表做查询来降低复杂度,但不看答案思路还是不清晰。当时还考虑了正负值分界的角度,但找分界依然需要一次遍历,不够简洁。接下来遍历另外两个vector,计算和,再查询这个和的相反数在刚刚的map中出现了多少次,这也就对应成功元组的次数了,累加起来就ok了。用一次遍历就可以在一个unordered_map中存储nums1,nums2的和的所有可能以及对应的频数。正确的思路应该是用分治的思想,其中两个的和应该等于另外两个和的相反数。第一次组会无桌AC(看提示版)原创 2025-08-22 15:46:26 · 147 阅读 · 0 评论 -
Leetcode 题解记录 1. 两数之和
(神奇宝贝BGM)unordered_map!底层实现哈希表,元素无序,非常适合用来做本题的Cache!缓存命中就可以直接输出结果,没命中也不亏!因为查询效率只需要O(1),太方便啦!Leetcode开篇第一题!除了暴力枚举还有什么更优的解法呢?unordered_map的操作非常简单,常用的有存储和查询。原创 2025-08-22 11:26:56 · 182 阅读 · 0 评论 -
Leetcode 题解记录 202. 快乐数
发现头脑不清醒写代码就会像梦话哈哈哈哈哈。不过状态有起伏是非常正常的,放平心态做到当下的最好就好啦。其实很多时候“状态”取决于心态,今天明明觉得不太清醒但其实AC的都很快哈哈,加油!前提是像序列像单链表一样无分支,有尽头(收敛),而且还能通过第三个指针找环的入口(太牛了)。哈希表常规思路,这里不再赘述。的题目,其实都可以用Floyd判环来做!while循环记得更新变量!原创 2025-08-22 10:29:03 · 150 阅读 · 0 评论
分享