- 博客(62)
- 收藏
- 关注
原创 力扣刷题(第五十七天)
队列的特性是先进先出(FIFO),而栈是后进先出(LIFO)。这种方法确保了每个元素最多被移动两次(从入队栈到出队栈),从而使每个操作的均摊时间复杂度为 O (1)。- python脚本学习。- 保持更新,努力学习。
2025-06-14 09:06:08
239
原创 力扣刷题(第五十四天)
翻转二叉树是一个经典的递归问题,核心思想是交换每个节点的左右子树。递归法更简洁直观,迭代法适合处理深度较大的树(避免栈溢出)。- python脚本学习。- 保持更新,努力学习。
2025-06-11 08:12:19
454
原创 力扣刷题(第五十三天)
要用队列实现栈,关键在于如何调整队列的特性(FIFO)来满足栈的要求(LIFO)。下面我将使用单队列法实现,因为它更简洁,空间复杂度更低。- python脚本学习。- 保持更新,努力学习。
2025-06-10 08:08:02
390
原创 力扣刷题(第五十二天)
完全二叉树的定义是:除了最后一层外,每一层都被完全填充,并且最后一层的节点都尽可能靠左。这种方法通过减少不必要的节点访问,将时间复杂度优化到 O (log²n)。- python脚本学习。- 保持更新,努力学习。
2025-06-09 08:21:11
338
原创 力扣刷题(第五十一天)
这种方法的时间复杂度是 O (n),其中 n 是数组的长度,因为只需要遍历一次数组。空间复杂度是 O (min (n, k)),因为哈希表中最多存储 k+1 个元素。这个问题可以通过哈希表来高效解决。- python脚本学习。- 保持更新,努力学习。
2025-06-08 16:57:42
397
原创 力扣刷题(第五十天)
最直接的思路是使用哈希集合(HashSet)来记录数组中已经出现过的元素。这种方法的时间复杂度是 O (n),空间复杂度是 O (n),其中 n 是数组的长度。- python脚本学习。- 保持更新,努力学习。
2025-06-07 18:12:21
436
原创 力扣刷题(第四十九天)
通过递归调用反转后续节点,然后调整当前节点的指针方向。:通过遍历链表,逐个改变节点的指针方向。- python脚本学习。- 保持更新,努力学习。
2025-06-06 08:28:10
1227
原创 力扣刷题(第四十七天)
这种方法的时间复杂度是 O (n),其中 n 是链表的长度,因为我们需要遍历每个节点一次。空间复杂度是 O (1),只需要常数级的额外空间。的节点,我们可以采用迭代的方式遍历链表,同时维护一个前驱节点来处理头节点可能被删除的情况。要移除链表中所有等于给定值。- python脚本学习。- 保持更新,努力学习。
2025-06-04 08:10:27
648
原创 力扣刷题(第四十六天)
的定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,或者进入无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。- python脚本学习。- 保持更新,努力学习。:使用哈希集合检测循环。
2025-06-03 08:15:07
426
原创 力扣刷题(第四十四天)
这个问题要求我们删除表中所有重复的电子邮箱,只保留每个唯一电子邮箱对应的最小。解决这个问题的关键在于识别出哪些记录是重复的,并确定需要删除的记录。在 Pandas 中,我们可以通过分组操作和过滤来达到。- python脚本学习。- 保持更新,努力学习。
2025-06-01 15:06:05
457
原创 力扣刷题(第四十三天)
例如:n=1010(二进制),n-1=1001,两者按位与结果为1000,最低位的1被消除。2. 位运算优化法:利用 n & (n-1) 操作消除最低位的1,减少循环次数。# 核心操作:n & (n-1) 会消除n的二进制表示中最低位的1。# 当n不为0时,循环继续(因为当所有1都被消除后,n会变为0)1. 逐位检查法:通过右移操作逐位检查每一位是否为1,统计计数。# 定义计数器,用于统计二进制中1的个数。# 每消除一个1,计数器加1。# 最终返回1的个数。- 保持更新,努力学习。
2025-05-31 10:32:58
412
原创 力扣刷题(第三十八天)
的关联关系返回组合结果。在关系型数据库中,这通常通过外键关联实现,而在 Pandas 中,可以使用。- python脚本学习。- 保持更新,努力学习。方法来模拟 SQL 的。题目要求根据两个表(
2025-05-26 09:17:28
444
原创 力扣刷题(第三十六天)
这是一种非常巧妙的算法,时间复杂度 O (n),空间复杂度 O (1)。它的核心思想是:在每一轮投票过程中,从数组中找出一对不同的元素并删除,直到数组为空或只有一种元素。由于众数的出现次数超过一半,因此最终剩下的元素一定是众数。:如果将数组排序,那么下标为 n/2 的元素(n 为数组长度)一定是众数。时间复杂度取决于排序算法,通常是 O (n log n),空间复杂度 O (1)(如果是原地排序)。:遍历数组,用哈希表统计每个元素的出现次数,然后找出次数超过一半的元素。- python脚本学习。
2025-05-24 17:59:11
391
原创 力扣刷题(第三十五天)
Excel 表列名称的规则类似于将数字转换为 26 进制,但与常规进制转换不同的是,这里的 "A" 对应 1 而不是 0。因此,当余数为 0 时,需要特殊处理为 'Z',并将商减 1。- python脚本学习。- 保持更新,努力学习。
2025-05-23 09:47:10
627
原创 力扣刷题(第三十三天)
后序遍历是二叉树遍历的一种,顺序为:左子树 → 右子树 → 根节点。递归实现后序遍历非常直观,按照遍历顺序递归访问左右子树后访问根节点即可。而非递归实现通常需要借助栈结构模拟递归过程,关键在于如何确保右子树在根节点之前被访问。- python脚本学习。- 保持更新,努力学习。
2025-05-21 08:33:43
860
原创 力扣刷题(第三十二天)
(简单直接,时间复杂度 O (n),空间复杂度 O (h),h 为树的高度)(使用栈模拟递归过程,避免栈溢出风险)- python脚本学习。- 保持更新,努力学习。
2025-05-20 09:09:17
665
原创 力扣刷题(第三十天)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。因此,将数组中所有元素依次进行异或运算,最终结果即为只出现一次的元素。:使用异或运算(XOR)。- python脚本学习。- 保持更新,努力学习。
2025-05-18 10:04:58
327
原创 力扣刷题(第二十九天)
这种方法的时间复杂度是 O(n),其中 n 是字符串的长度,因为只需要遍历一次字符串。空间复杂度是 O(n),主要用于存储预处理后的字符串。的核心在于判断一个字符串是否从前向后和从后向前读都是一样的。- python脚本学习。- 保持更新,努力学习。
2025-05-17 08:54:54
297
原创 力扣刷题(第二十八天)
这种方法的时间复杂度是 O (n),其中 n 是数组的长度,因为只需要遍历一次数组。空间复杂度是 O (1),只需要常数级的额外空间。这道题要求我们找到买卖股票的最佳时机,使得利润最大化。关键在于只能进行一次买卖操作,并且卖出必须在买入之后。我们可以使用贪心算法来解决这个问题。- python脚本学习。- 保持更新,努力学习。
2025-05-16 08:30:34
552
原创 力扣刷题(第二十四天)
这道题要求找出二叉树的最小深度,也就是从根节点到最近叶子节点的最短路径上的节点数量。叶子节点是指没有子节点的节点。解题的关键在于理解最小深度的定义,并处理好各种边界情况。- python脚本学习。- 保持更新,努力学习。
2025-05-12 08:34:39
465
原创 力扣刷题(第二十二天)
将数组分为左半部分和右半部分,分别递归构建左子树和右子树。递归终止条件是子数组为空(即左边界超过右边界)。作为根节点可保证左右子树节点数相近。若数组长度为偶数,可选择中间左边或右边元素。- python脚本学习。- 保持更新,努力学习。
2025-05-10 16:17:33
349
原创 力扣刷题(第二十一天)
这道题要求计算二叉树的最大深度,即从根节点到最远叶子节点的最长路径上的节点数。- python脚本学习。- 保持更新,努力学习。
2025-05-09 18:03:11
861
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人