LeetCode
文章平均质量分 74
从零开始的LeetCode之旅
霜晨月c
https://xiaose-code.github.io/
欲买桂花同载酒,终不似,少年游。
展开
-
146. LRU 缓存
本文主要采用了双链表+哈希表的方法实现 LRU缓存原创 2024-01-08 16:26:02 · 647 阅读 · 0 评论 -
15. 三数之和
本文主要采用排序+双指针的方法解决了三数之和的问题,相较于两数之和这道题主要问题在于去重的思考。原创 2023-12-28 14:46:03 · 567 阅读 · 1 评论 -
9. 回文数
本文主要采用将整数转换为字符串和数学方法解决了回文数的问题原创 2023-12-25 09:48:41 · 758 阅读 · 0 评论 -
187. LCR 破冰游戏
这个操作模拟了游戏中的计数过程,每次删除一个数字后,从下一个数字重新开始计数。这个公式的意义是,每次删除一个数字后,我们从下一个数字开始重新计数,并在新的数组长度下更新当前位置。每次删除一个数字后,我们从下一个数字开始重新计数。为了找到下一个数字的位置,我们将当前位置。位的成员离开圆桌,且成员离开后从下一个成员开始计数。,表示从 0 号位置开始。这种解法使用迭代的方式模拟约瑟夫环的过程。然后,我们取这个移动后的位置对当前数组长度。时,每次删除一个数字后,下一个数字的位置。就是下一轮的起始位置。原创 2023-12-22 14:23:43 · 425 阅读 · 0 评论 -
1. 两数之和
本文主要讲解了哈希法解决两数之和的问题,同时也包含暴力枚举的方法原创 2023-11-30 09:46:54 · 372 阅读 · 0 评论 -
26. 删除有序数组中的重复项
本文采用双指针法解决有序数组中重复项的删除原创 2023-12-07 10:47:56 · 353 阅读 · 0 评论 -
53. 最大子数组和
本文采用动态规划的五部曲解决了最大子数组和的问题原创 2023-12-21 14:59:09 · 352 阅读 · 0 评论 -
69. x 的平方根
本文主要采用了袖珍计算器算法和二分查找方法解决了 x 的平方根问题原创 2023-12-05 14:47:43 · 393 阅读 · 0 评论 -
70. 爬楼梯
使用动态规划法解决LeetCode第70.爬楼梯原创 2023-11-17 17:40:32 · 83 阅读 · 0 评论 -
101. 对称二叉树
基本思路是使用队列,将每一层的节点按照对称的顺序加入队列,然后依次比较队列中的节点是否对称。每次从队列中取出两个节点进行比较,并按照对称的顺序将它们的子节点加入队列。**当队列为空时,或者我们检测到树不对称(即从队列中取出两个不相等的连续结点)时,该算法结束。空间复杂度:这里需要用一个队列来维护节点,每个节点最多进队一次,出队一次,队列中最多不会超过 n 个点,故渐进空间复杂度为 O(n)。p指针左移,则q指针右移,每次移动检查当前指针所指向的节点的值是否相等,反之亦然。, 检查它是否轴对称。原创 2023-11-22 16:55:53 · 798 阅读 · 0 评论 -
104. 二叉树的最大深度
本文主要采用了广度优先和深度优先解决二叉树的最大深度问题原创 2023-11-28 10:24:26 · 1366 阅读 · 0 评论 -
120. LCR寻找文件副本
本文采用哈希表法解决了LCR寻找文件副本的问题原创 2023-12-08 11:26:10 · 374 阅读 · 0 评论 -
121. 买卖股票的最佳时机
本文主要采用了一层循环的贪心算法解决了买卖股票的最佳时机原创 2023-12-04 16:00:10 · 449 阅读 · 0 评论 -
125. LCR图书整理 II
本文主要采用双栈法解决图书整理问题原创 2023-12-13 10:22:50 · 379 阅读 · 0 评论 -
136. 只出现一次的数字
不重复的存储数组的元素,也就是每个元素只存储一次,重复的不存储,计算它们的和,就相当于所有数字的两倍之和。然后将原数组中的元素全部相加,就相当于只出现了一次的元素加上全部出现了两次的元素。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该数字从集合中删除,最后剩下的数字就是只出现一次的数字。遍历数组即可得到每个数字出现的次数,并更新哈希表,最后遍历哈希表,得到只出现一次的数字。因此,数组中的全部元素的异或运算结果即为数组中只出现一次的数字。原创 2023-11-24 11:04:32 · 1061 阅读 · 0 评论 -
140. LCR 训练计划 II
本文采用双指针法解决返回链表倒数第k个数的问题原创 2023-12-14 09:33:18 · 356 阅读 · 0 评论 -
141. 环形链表
本文主要采用了快慢指针和哈希表法两种方法解决环形链表找环形入口的问题原创 2023-12-04 16:02:06 · 793 阅读 · 0 评论 -
234. 回文链表
我们要理解计算机如何运行递归函数,在一个函数中调用一个函数时,计算机需要在进入被调用函数之前跟踪它在当前函数中的位置(以及任何局部变量的值),通过运行时存放在堆栈中来实现(堆栈帧)。在进行回文检查之前,递归函数将在堆栈中创建 n 个堆栈帧,计算机会逐个弹出进行处理。在进行回文检查之前,递归函数将在堆栈中创建 n 个堆栈帧,计算机会逐个弹出进行处理。算法的正确性在于递归处理节点的顺序是相反的,而我们在函数外又记录了一个变量,因此从本质上,我们同时在正向和逆向迭代匹配。**进阶:**你能否用。原创 2023-11-20 11:12:28 · 55 阅读 · 0 评论 -
206. 反转链表
这篇文章主要写了采用双指针迭代法解决了反转链表的问题原创 2023-11-29 15:11:29 · 367 阅读 · 0 评论 -
283. 移动零
使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。如果数组中没有0,这个时候左右指针始终指向同一个位置,每个位置都是自己和自己交换。如果数组中有0,这个时候不会执行交换,左指针停留在指向0的位置,而右指针则继续往右移动,直到找到一个非0元素,然后进行左右指针元素的交换。时间复杂度:O(n),其中 n 为序列长度。只需要常数的空间存放若干变量。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。**进阶:**你能尽量减少完成的操作次数吗?原创 2023-11-24 11:00:28 · 372 阅读 · 0 评论 -
409. 最长回文串
本文主要采用贪心法解决了最长回文串的问题原创 2023-12-20 14:27:06 · 399 阅读 · 0 评论 -
538. 把二叉搜索树转换为累加树
按题目中的意思就是大于等于根节点4的原来二叉树的值全部加起来,即根节点4+(它的右子树)= 4 + 6 + 5 + 7 + 8 = 30,同理根节点4的左孩子节点1,那就是要将大于等于1的原二叉树的值全部加起来,那就是从自身开始1 + 2 + 3 + (之前根节点4累加的值,因为它们都比1大) = 36,所以新值为36,依此类推。所以根据我的题目解释,这样我们只需要反序中序遍历该二叉搜索树,记录过程中的节点值之和,并不断更新当前遍历到的节点的节点值,即可得到题目要求的累加树。的新值等于原树中大于或等于。原创 2023-11-27 11:23:14 · 907 阅读 · 0 评论 -
581. 最短无序连续子数组
从示例1可以得知,数组可以分为三部分,nums1部分,nums2部分,nums3部分。基本思路是:把原来的数组复制到另一个数组中进行排序,然后两个数组进行比较,然后我们从左向右找到第一个两数组不同的位置,即为 nums2 的左边界。我们需要 O(nlogn) 的时间进行排序,以及 O(n) 的时间遍历数组,因此总时间复杂度为 O(n)。使用两个指针,一个从数组的开头向右移动,找到第一个无序的元素,另一个从数组的末尾向左移动,找到第一个无序的元素。空间复杂度:O(n),其中 n 为给定数组的长度。原创 2023-11-22 17:00:11 · 299 阅读 · 0 评论 -
617. 合并二叉树
对两个二叉树同时进行深度优先搜索,只有当两个二叉树中的对应节点都不为空时才会对该节点进行显性合并操作,因此被访问到的节点数不会超过较小的二叉树的节点数。对两个二叉树同时进行广度优先搜索,只有当两个二叉树中的对应节点都不为空时才会访问到该节点,因此被访问到的节点数不会超过较小的二叉树的节点数。如果两个二叉树的对应节点都不为空,则合并后的二叉树的对应节点的值为两个二叉树的对应节点的值之和,此时需要显性合并两个节点。如果两个二叉树的对应节点只有一个为空,则合并后的二叉树的对应节点为其中的非空节点;原创 2023-11-24 10:59:17 · 329 阅读 · 0 评论 -
704. 二分查找
本文采用二分法解决升序数组寻找某个元素原创 2023-12-11 14:39:50 · 354 阅读 · 0 评论 -
977. 有序数组的平方
本文主要采取了直接排序,双指针法解决有序数组的平方问题,其中还涉及到了归并排序的思想原创 2023-12-18 09:56:28 · 333 阅读 · 0 评论