- 博客(5)
- 收藏
- 关注
原创 Leetcode hot5/100-最长回文子串(中心扩展法)——python3
本文介绍了寻找字符串中最长回文子串的算法。采用中心扩展法,预处理字符串后统一奇偶长度情况。通过维护当前已知最右回文边界及其中心,利用对称性质减少重复计算。代码实现中,expand函数计算回文臂长,主函数遍历字符串并更新最长回文边界。算法时间复杂度为O(n²),空间复杂度O(1)。示例输入"babad"可输出"bab"或"aba","cbbd"输出"bb"。该方法能高效处理各种长度的回文子串问题。
2025-08-04 17:59:44
147
原创 Leetcode hot4/100-寻找两个有序数组的中位数(二分法)——python3
给定两个有序数组,要求找到它们合并后的中位数,时间复杂度需为O(log(m+n))。解法采用二分查找,确保较短的数组进行分割以提高效率。通过比较分割点两侧元素的大小关系,调整分割位置直至满足左边元素都小于右边元素的条件。最终根据数组长度奇偶性返回中位数:偶数时取中间两数平均值,奇数时取中间值。代码通过处理边界情况(如分割点在数组首尾)来确保正确性。
2025-08-04 11:43:57
329
原创 Leetcode hot3/100-无重复字符的最长子串(滑动窗口)——python3
本文介绍了如何求解字符串中不含重复字符的最长子串长度问题。通过滑动窗口算法,维护一个无重复字符的窗口,右边界不断扩展,遇到重复字符时左边界右移。给出了Python实现代码,使用集合存储窗口字符,时间复杂度为O(n)。示例输入"abcabcbb"、"bbbbb"和"pwwkew"分别输出3、1、3。关键点在于正确移动窗口边界并及时更新最大长度值。
2025-07-31 11:17:01
257
原创 Leetcode hot2/100-两数相加(链表)——python3
题目要求将两个逆序存储的非负整数链表相加,返回同样逆序存储的结果链表。解题关键是按位相加并处理进位,需考虑链表长度不同及最终进位的情况。代码通过定义单链表节点类,使用哑节点简化操作,遍历两链表时计算当前位和及进位,创建新节点存储结果,最后返回结果链表的头节点。示例输入[2,4,3]+[5,6,4]输出[7,0,8],对应342+465=807的逆序结果。
2025-07-31 09:49:04
318
原创 Leetcode hot1/100-两数之和(哈希表)——python3
本文记录了使用Python解决LeetCode两数之和问题的方法。题目要求在数组中找到和为target的两个数,返回其下标。采用哈希表(字典)存储已遍历元素,每次检查target与当前数的差值是否存在于表中。关键点包括:使用enumerate获取索引和值,字典存储格式{num:index},以及实例化Solution类调用方法。示例代码清晰展示了这一哈希表解法的高效实现,时间复杂度为O(n)。
2025-07-30 11:43:29
234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅