
leetcode解析
文章平均质量分 50
leetcode解题
shulu
这个作者很懒,什么都没留下…
展开
-
leetcode_015_三数之和解析
首先对数组进行排序,排序后固定一个数 nums[i],再使用左右指针指向 nums[i]后面的两端,数字分别为 nums[L] 和 nums[R],计算三个数的和 sum 判断是否满足为 0,满足则添加进结果集。当 sum == 0 时,nums[L] == nums[L+1] 则会导致结果重复,应该跳过,L++当 sum == 0 时,nums[R] == nums[R−1] 则会导致结果重复,应该跳过,R−−。跳过重复元素:对于i,在遍历过程中,如果当前元素与前一个元素相同,则跳过它。原创 2024-09-29 10:31:42 · 488 阅读 · 1 评论 -
leetcode_283_移动零解析
使用双指针技术(一个指针用于遍历数组,另一个指针用于记录非零元素应该放置的位置)非0,交换数据,左右指针都往右移。原创 2024-08-30 15:17:01 · 375 阅读 · 0 评论 -
leetcode_128_最长连续序列解析
如何确定一个数是连续序列的起点?如何跟踪和更新最长序列的长度?如何高效地扩展连续序列?原创 2024-08-29 16:23:51 · 1455 阅读 · 0 评论 -
leecode_049_字母异位词分组解析
在拼写检查工具中,识别字母异位词可以帮助用户纠正拼写错误。例如,如果用户输入了 “listen” 的一个字母异位词 “silnet”,拼写检查器可以建议正确的拼写。一个简单而有效的方法是将字符串中的字符进行排序,然后比较排序后的字符串是否相同。由于每个字母异位词都会生成相同的字符计数数组,因此它们会被分组到同一个列表中。主要思路是利用哈希表(HashMap)来存储和分组具有相同字符组成但顺序不同的字符串(即字母异位词)。这个函数的核心思想是对每个字符串进行字符计数,并将这个计数结果(即。原创 2024-08-29 14:11:17 · 618 阅读 · 0 评论 -
leetcode_002_两数相加解析
Dummy节点在ListNode中表示一个虚拟节点,有时候也叫着哨兵节点,通常放在链表的最前面,指向头节点。Dummy节点的使用主要是为了消除头节点的特殊性,使得代码更加优雅和易于管理。通过引入一个虚拟节点作为新链表的头部,可以避免因头节点特殊性而产生的问题。这样做的好处在于,当我们处理完链表之后,只需要返回dummy.next,由于单向链表只能从头往后遍历的性质,就可以舍弃掉dummy,返回的就是我们需要的链表。原创 2024-08-27 16:39:05 · 357 阅读 · 2 评论 -
leetcode_001_两数之和解析
这个问题要求你设计一个高效的算法来找到数组中两个数,使得它们的和等于一个给定的目标值。这要求你能够分析问题的本质,并设计出合适的解决方案。这个问题的本质是搜索与匹配的问题,更具体地说,是在无序数组中查找满足特定条件(和为目标值)的两个数。原创 2024-08-26 17:37:25 · 855 阅读 · 0 评论