文章归档
21 / 21 篇文章
2026
21 篇沿途的记录
10月 OCTOBER
06月 JUNE
05月 MAY
leetcode-1438. 绝对差不超过限制的最长连续子数组
记录 LeetCode 1438「绝对差不超过限制的最长连续子数组」的解题思路。在滑动窗口中使用两个单调队列,分别维护最大值和最小值,当差值超过 limit 时不断收缩窗口,将整体时间复杂度优化到 O(n),并与 LeetCode 239 的定长窗口进行对比。
5 分钟阅读leetcode-179. 最大数
记录 LeetCode 179「最大数」的解题思路。从普通数值排序和字典序排序的局限出发,通过比较两个数字不同拼接顺序的大小,推导出自定义排序规则,并使用 Python 的 cmp_to_key 实现排序,最后处理全零的特殊情况。
4 分钟阅读leetcode-239. 滑动窗口最大值
记录 LeetCode 239「滑动窗口最大值」的解题思路。利用单调队列维护窗口最大值,通过队尾删除较小元素、队头移除过期索引,避免重复遍历窗口,将时间复杂度优化到 O(n),附 Python 实现。
3 分钟阅读leetcode-136. 只出现一次的数字
记录 LeetCode 136「只出现一次的数字」的解题过程。从哈希表统计出现次数入手,再利用异或运算的性质,让成对出现的数字相互抵消,将额外空间复杂度从 O(n) 优化到 O(1),附 Python 实现。
3 分钟阅读leetcode动态规划基础练习题
通过 LeetCode 509「斐波那契数」和 322「零钱兑换」两道题,记录动态规划的基本思路。从朴素递归出发,利用备忘录解决重复计算问题,再改为自底向上的迭代实现,理解状态定义、状态转移和空间优化,附 Python 代码。
7 分钟阅读leetcode二叉树基础练习题
通过 LeetCode 104、144、543 三道二叉树题目,记录递归的两种常见思路:分解子问题与遍历整棵树。从最大深度的两种实现出发,进一步理解前序遍历、后序位置汇总子树信息,以及如何利用左右子树深度计算二叉树直径,附 Python 实现。
8 分钟阅读leetcode数组双指针练习题
整理双指针算法的常见用法,通过七道 LeetCode 题目,记录快慢指针在数组去重、链表去重和元素移动中的应用,以及左右指针求两数之和、反转字符串和中心扩散寻找最长回文子串的解题思路,附 Python 实现。
6 分钟阅读leetcode滑动窗口练习题
整理滑动窗口的基本思路与通用代码框架,并通过 LeetCode 76、567、438、3 四道经典题,记录可变窗口与定长窗口的不同应用,重点理解窗口状态维护、左右指针的移动条件以及答案的更新时机。
8 分钟阅读leetcode链表双指针练习题
整理链表合并、分隔、倒数节点、中点、环与交点问题,记录虚拟头节点、快慢指针和最小堆各自解决什么问题。
6 分钟阅读
04月 APRIL
洛谷-P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题
记录洛谷 P1029「最大公约数和最小公倍数问题」的解题过程。从双层暴力枚举超时出发,利用最大公约数与最小公倍数的乘积关系,根据一个数直接求出另一个数,将双层枚举优化为单层枚举,附 Python 和 C++ 实现。
4 分钟阅读leetcode-1979. 找出数组的最大公约数
记录 LeetCode 1979「找出数组的最大公约数」的解题思路。通过排序获取数组中的最大值和最小值,再调用 GCD 函数计算最大公约数,附 Python 和 C++ 实现。
2 分钟阅读洛谷-B3634 最大公约数和最小公倍数
记录洛谷 B3634「最大公约数和最小公倍数」的解题过程。通过具体例子理解辗转相除法,并利用最大公约数与最小公倍数的关系求解,分别使用 Python 循环和 C++ 递归实现。
4 分钟阅读洛谷-P10424 [蓝桥杯 2024 省 B] 好数
记录洛谷 P10424「好数」的解题过程。通过枚举 1 到 N 的所有整数,按照从个位到高位的顺序检查数位奇偶性,分别使用 C++ 字符串反转和 Python 取模、整除实现,并记录 Python 与 PyPy3 的提交情况。
5 分钟阅读洛谷-P8716 [蓝桥杯 2020 省 AB2] 回文日期
记录洛谷 P8716「回文日期」的解题过程。从直接枚举日期超时的问题出发,利用回文数的对称性,通过反转年份构造回文候选,再结合日期合法性和闰年判断,寻找下一个普通回文日期及 ABABBABA 型日期,附 Python 和 C++ 实现。
5 分钟阅读Dr.com校园网自动登录方案
记录使用 Python 实现 Dr.COM 校园网自动登录的方法。通过浏览器开发者工具获取认证 URL,结合 TCP 连通性检测和 HTTP 204 检测判断网络状态,在连接异常时尝试重新认证,并介绍 Windows 登录后自动启动的配置方法。
6 分钟阅读leetcode-2226. 每个小孩最多能分到多少糖果
记录 LeetCode 2226「每个小孩最多能分到多少糖果」的解题思路。从样例分析入手,利用糖果分配数量的单调性,通过二分查找确定第一个不可行的答案,再减一得到最大可行值,附 Python 和 C++ 实现。
5 分钟阅读leetcode-2563. 统计公平数对的数目
记录 LeetCode 2563「统计公平数对的数目」的解题思路。通过排序和不等式变形,将数对统计转化为有序数组中的区间查找,再利用二分查找确定边界,将时间复杂度优化到 O(n log n),附 Python 和 C++ 实现。
2 分钟阅读leetcode-1.两数之和
记录 LeetCode 1「两数之和」的解题思路。从双重循环暴力枚举出发,通过
target - x确定需要查找的元素,再利用哈希表将平均时间复杂度从 O(n²) 优化到 O(n),附 Python 和 C++ 实现。3 分钟阅读洛谷-P8218 【深进1.例1】求区间和
记录洛谷 P8218「求区间和」的解题过程。从最直接的循环累加出发,分析重复查询带来的时间开销,再利用前缀和将单次区间查询优化到 O(1),并附上 Python 和 C++ 两种实现。
2 分钟阅读
这里还没有文章,故事会慢慢写下去。
故事从这里开始,下一页还在继续。