![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣刷题记录
文章平均质量分 94
力扣刷题记录
全栈若城
曾就职容猫,四维等大厂,涉猎大前端,python, 鸿蒙等领域技术。阿里云, CSDN技术社区专家博主,CSDN博客专家Top100, 热衷技术分享
展开
-
【力扣算法20】之 8. 找出字符串中第一个匹配项的下标 (python方向)
本文介绍了如何使用双指针解决字符串匹配问题。通过遍历haystack字符串和needle字符串,逐个字符进行比较,找到第一个匹配项的下标。如果遍历完整个字符串haystack还没有找到匹配项,则返回-1。原创 2023-07-20 15:03:57 · 385 阅读 · 2 评论 -
【力扣算法19】之 24. 两两交换链表中的节点 python
在不修改节点内部值的情况下,给定一个链表,要求对其中相邻的节点进行两两交换,并返回交换后的链表头节点。本文通过递归的方法解决了这个问题。首先检查链表是否为空或只有一个节点,如果是,则无需交换,直接返回原链表。然后定义prev和cur两个指针,分别指向要交换的两个节点。将prev的next指针指向cur的next节点,即将第一个节点的后继指针指向第三个节点;将cur的next指针指向prev,完成节点的交换。接着递归处理剩余部分的链表,并将返回的结果赋值给prev.next,连接交换后的节点原创 2023-07-20 14:47:14 · 671 阅读 · 0 评论 -
【力扣算法17】之 19. 删除链表的倒数第 N 个结点 python
这篇文章是关于通过删除链表的倒数第n个节点来实现链表操作的。文章首先给出了问题描述,然后分析了解决该问题的思路和算法。思路主要利用双指针的技巧,在一次遍历中找到要删除的节点的前一个节点,并进行删除操作。具体实现的代码及详细分析也在文章中给出。原创 2023-07-19 16:04:24 · 983 阅读 · 0 评论 -
【力扣算法07】之 2.两数相加 python
本文介绍了一种使用链表相加的方法,该方法可以处理两个非负整数的相加操作。首先,检查特殊情况,如果其中一个链表为空,直接返回另一个链表。然后,创建一个哑结点(dummy)作为结果链表的头节点,并创建一个当前节点指针(curr)用于逐个链接新的节点。接下来,遍历两个链表,同时处理进位。遍历过程中,我们需要同时访问两个链表的当前节点,并将其值加上进位值,得到一个新的节点值。在每一位数字相加后,更新进位值。将新的节点插入结果链表中,并将当前节点指针后移一位。继续遍历两个链表,直到其中一个链表遍历完或者两个链表都遍历原创 2023-07-12 15:20:59 · 576 阅读 · 0 评论 -
【力扣算法05】之 _1911_ 最大子序列交替和- python
本文介绍了一个关于交替和的问题,给定一个数组nums,其中下标从0开始,交替和定义为偶数下标处元素之和减去奇数下标处元素之和。我们需要找出nums中任意子序列的最大交替和。文章通过动态规划的方法解决了这个问题,首先定义了两个长度为n的数组dp0和dp1,分别表示交替和和交替和末尾为正数的最大值。然后使用动态规划的思想,从索引1开始遍历数组nums,更新dp0和dp1的值。最后返回dp0和dp1中的较大值作为结果。原创 2023-07-11 17:28:27 · 629 阅读 · 2 评论 -
【力扣算法01】之最接近的三数之和
本文介绍了一个问题,即如何从给定的整数数组中选择三个数,使它们的和与目标值最接近。通过排序数组和使用双指针的方法,可以找到一个与目标值最接近的三数之和。文章给出了解题思路和完整的代码实现,并提供了示例运行效果。原创 2023-07-10 16:47:02 · 300 阅读 · 6 评论 -
【力扣算法09】之 6. N 字形变换 python
将给定字符串根据指定行数进行Z字形排列,然后从左往右逐行读取得到新的字符串。如果指定行数为1,则直接返回原字符串。首先创建一个长度为行数和原字符串长度的空字符串列表rows,然后定义两个变量curRow和goingDown,分别表示当前行和字符行进的方向。遍历原字符串中的每个字符,将字符添加到对应的行中,并根据规律调整行数和行进方向。最后将每一行的字符拼接起来得到结果。原创 2023-07-13 11:04:56 · 293 阅读 · 1 评论 -
【力扣算法15】之 17. 电话号码的字母组合 python
这篇题目来源于力扣,描述了给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合的问题。文章首先给出了示例输入和输出,然后通过思路分析介绍了使用回溯法解决该问题的方法。具体思路如下:创建一个数字与字母列表的映射字典。定义一个递归函数,传入当前数字索引和部分结果字符串。在递归函数中判断当前数字索引是否超出字符串长度,如果是,则将部分结果添加到最终结果列表中,并返回。获取当前数字对应的字母列表,并遍历字母列表。原创 2023-07-18 16:11:47 · 330 阅读 · 0 评论 -
【力扣算法06】之 _2544_ 交替数字和- python
这篇文章是关于一个力扣题目的解析和代码实现。题目要求给定一个正整数n,对其中的每一位数字按照一定规则分配一个符号,并计算所有数字及其对应符号的和。文章首先给出了题目的示例输入和输出,并提供了思路分析和代码实现。思路分析部分介绍了解决该问题的思路:将正整数n转换为字符串,然后遍历每一位数字,根据规则确定其符号。在遍历过程中,使用变量result保存结果并初始化为0,同时使用变量sign保存当前位的符号,初始值设为1。最后返回result作为最终的结果。原创 2023-07-12 09:59:38 · 362 阅读 · 0 评论 -
【力扣算法12】之 11. 盛最多水的容器 python
本文介绍了解决LeetCode中题目"盛最多水的容器"的思路和代码。通过使用双指针的方法,不断缩小有效宽度的范围来寻找容器的最大面积。具体实现步骤包括定义Solution类、编写maxArea方法的算法流程、初始化指针和最大面积、进入循环并计算当前面积、更新最大面积、根据指针所指高度移动指针、循环结束后返回最大面积。原创 2023-07-14 14:50:01 · 815 阅读 · 5 评论 -
【力扣算法14】之 15. 三数之和 python
本文介绍了力扣上一道经典的三数之和问题的解法。给定一个整数数组,要求找出所有不重复的三元组,使得三个数的和为0。首先对数组进行排序,然后使用双指针法遍历数组,以每个元素作为基准,在剩余的数组中使用左右指针来寻找满足条件的三元组。如果找到满足条件的三元组,则将其加入结果列表。为了避免重复计算,需要进行一些额外的判断和操作。最后返回结果列表原创 2023-07-18 09:43:24 · 896 阅读 · 0 评论 -
【力扣算法16】之 18. 四数之和 python
这篇文章是关于在给定的整数数组中找到满足特定条件的四个数的组合的。通过使用双指针的方法,首先对数组进行排序,然后使用两层循环来确定第一和第二个数的位置,并利用双指针在剩下的子数组中搜索剩下的两个数。在移动指针的过程中,需要注意去除重复解,最终返回所有满足条件且不重复的四元组。原创 2023-07-19 11:09:38 · 293 阅读 · 0 评论 -
【力扣算法11】之 8. 字符串转换整数 (atoi) python
本文主要介绍了如何实现一个字符串转换为整数的函数。函数算法包括去除无用的前导空格、检查符号位、读取数字字符并转换为整数以及处理溢出情况。通过逐步解析示例和思路分析,详细说明了每个步骤的具体实现方法。最后给出了完整的代码,并提供了调用示例和运行结果截图。原创 2023-07-13 14:56:50 · 565 阅读 · 3 评论 -
【力扣算法13】之 12. 整数转罗马数字 python
本文介绍了将整数转换为罗马数字的方法。首先,定义了罗马数字字符表和对应的数值表。然后,通过贪心算法对给定的整数进行转换,将尽量多的最大罗马数字字符添加到结果字符串中,直到整数变为0。最后返回转换后的罗马数字字符串。原创 2023-07-14 15:43:06 · 320 阅读 · 0 评论 -
【力扣算法04】之合并 K 个升序链表- python
这篇技术博客介绍了如何将多个已排序的链表合并成一个升序链表。首先,作者定义了一个辅助方法mergeTwoLists,用于将两个有序链表合并成一个有序链表。然后,作者定义了另一个辅助方法mergeKListsHelper,该方法递归地将链表数组拆分成两个部分,并调用mergeTwoLists方法将它们合并成一个有序链表。最后,在主方法mergeKLists中,作者首先判断链表数组是否为空,如果是,则直接返回空。否则,调用mergeKListsHelper方法得到最终合并后的链表。整体思路清晰,代码逻辑简洁明了原创 2023-07-11 16:02:06 · 439 阅读 · 1 评论 -
【力扣算法08】之 5. 最长回文子串 python
该文章讲解了如何找到一个字符串中最长的回文子串。文章首先介绍了问题的描述,给出了示例输入和输出。然后进行了思路分析,使用动态规划来解决问题,并推导出了判断回文串的公式。接下来,给出了代码实现的详细分析,包括初始化、循环遍历和更新结果等步骤。最后,给出了运行效果截图,验证了代码的正确性。整篇文章结构清晰,逻辑严谨,方便读者理解并实践。原创 2023-07-13 10:06:45 · 1166 阅读 · 1 评论 -
【力扣算法03】之正则表达式匹配- python
本文介绍了力扣题目中的一道字符串问题,即实现一个支持 '.' 和 '*' 的正则表达式匹配。文章通过使用动态规划的方法解决了此问题,具体思路是创建一个二维数组dp来存储匹配结果,并通过遍历字符串s和模式p的每个字符来更新dp数组。最后返回dp[m][n]的值,判断整个字符串s是否与模式p匹配。原创 2023-07-11 10:19:34 · 521 阅读 · 1 评论 -
【力扣算法02】之寻找两个正序数组的中位数 - python
本文介绍了如何找到两个已排序数组的中位数。首先,通过比较两个数组的长度,确保较短的数组是nums1。然后,使用二分查找的方法,在nums1和nums2之间进行分割点的搜索。根据分割点将两个数组分成左右两部分,并计算出各部分的最大值和最小值。根据最大值和最小值的关系判断当前的分割点是否符合中位数的条件。如果符合条件,根据总长度是奇数还是偶数,返回相应的中位数。如果不符合条件,根据最大值和最小值的关系更新分割点的位置,并继续进行二分查找,直到找到符合条件的分割点或者搜索结束。原创 2023-07-10 17:48:13 · 551 阅读 · 0 评论 -
【力扣算法10】之 7. 整数反转 python
本文是一道力扣题目的解析,题目要求对给定的32位有符号整数进行反转操作,并返回结果。文章提供了问题描述、思路分析、代码分析和完整代码,并附带了详细的解题步骤和示例运行结果。原创 2023-07-13 14:18:20 · 743 阅读 · 1 评论