相向双指针
文章平均质量分 77
leetcode相向双指针类题目
flashlight_hi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 分类刷题:18. 四数之和
这是一道关于在数组中寻找四数之和等于目标值的算法题。文章详细解析了如何通过双指针法优化求解过程:先对数组排序,然后通过两重循环枚举前两个数,再用双指针寻找后两个数。关键优化点包括:提前判断枚举边界条件、跳过重复元素、利用排序特性剪枝。时间复杂度为O(n³),空间复杂度为O(1)。给出的JavaScript实现代码清晰展示了这一思路,适合准备算法面试的开发者参考学习。原创 2025-08-05 16:32:39 · 843 阅读 · 0 评论 -
LeetCode 分类刷题:2105. 给植物浇水 II
本文介绍了Alice和Bob双人花园浇水问题。两人分别从左右两侧同时给植物浇水,当水罐水量不足时需要重新灌满。文章给出了三个示例说明不同情况下的重新灌水次数,并提供了JavaScript解法。解决方案使用双指针法,分别维护Alice和Bob的剩余水量,在遍历过程中统计需要重新灌水的次数。当两人相遇时,比较剩余水量决定由谁浇水。算法时间复杂度O(n),空间复杂度O(1)。该问题考察了双指针应用和边界条件处理能力。原创 2025-08-08 17:24:56 · 487 阅读 · 0 评论 -
LeetCode 分类刷题:125. 验证回文串
题目要求判断字符串是否为回文串,处理步骤包括:1)统一转为小写;2)移除非字母数字字符;3)用双指针法验证是否回文。示例说明处理后字符串正反读一致即为回文。算法先预处理字符串,再用双指针从两端向中间比较字符,时间复杂度O(n)。空字符串视为有效回文。原创 2025-08-07 16:27:11 · 331 阅读 · 0 评论 -
LeetCode Hot 100:42. 接雨水
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2025-07-31 16:35:42 · 305 阅读 · 0 评论 -
LeetCode Hot 100:11. 盛最多水的容器
本文介绍了如何通过双指针法求解盛水容器问题。给定一个高度数组,通过初始化左右指针分别指向数组首尾,计算当前容器的面积,并移动较短边的指针以寻找可能更大的面积。在每次迭代中更新最大面积值,直至指针相遇。该方法时间复杂度为O(n),空间复杂度为O(1),是一种高效的解决方案。原创 2025-07-29 17:19:43 · 536 阅读 · 0 评论 -
LeetCode 分类刷题:611. 有效三角形的个数
这道题目要求从给定的非负整数数组中找出能构成三角形的三元组个数。关键思路是:先对数组排序,然后枚举最长边c,使用双指针法寻找满足a+b大于c的较短边a和b。当a+b大于c时,i到j-1之间的所有元素与b的组合都满足条件,然后移动j指针;否则移动i指针。时间复杂度为O(n^2),空间复杂度为O(1)。通过排序和双指针技巧,有效地避免了重复统计并优化了查找过程。原创 2025-08-06 23:01:50 · 1262 阅读 · 0 评论 -
LeetCode 分类刷题:16. 最接近的三数之和
本文介绍了如何在整数数组中找到三个数,使其和最接近目标值。算法先对数组排序,然后固定一个数,使用双指针寻找另外两个数。通过维护最小差值来更新最优解,并利用数组有序性进行优化:当最小三数和大于目标值时提前终止,最大三数和小于目标值时跳过后续计算。时间复杂度为O(n²),空间复杂度O(1)。代码基于三数之和问题改进,包含去重和边界优化处理。原创 2025-08-04 16:17:14 · 994 阅读 · 0 评论 -
LeetCode 分类刷题:2824. 统计和小于目标的下标对数目
本文介绍了使用双指针法统计数组中满足两数之和小于目标值的下标的对数,通过排序后双指针遍历高效解决问题。首先对数组排序,初始化左右指针。当左指针元素与右指针元素之和小于目标值时,说明左指针与中间所有元素的组合都满足条件,将相应数量加入结果并移动左指针;否则移动右指针。该方法时间复杂度为O(nlogn)(主要来自排序),空间复杂度O(1)。原创 2025-08-03 15:50:53 · 513 阅读 · 0 评论 -
LeetCode Hot 100:15. 三数之和
该问题要求在给定整数数组中找到所有不重复的三元组,使其和为0。解法采用排序+双指针策略:先对数组排序,然后固定一个数,用双指针在剩余部分寻找和为0的另外两个数。关键优化包括:跳过重复元素避免重复解;提前终止不可能的情况(如当前最小和已大于0或最大和仍小于0)。时间复杂度为O(n²),空间复杂度O(1)。原创 2025-07-30 18:09:30 · 851 阅读 · 0 评论 -
LeetCode Hot 100:1.两数之和
本文介绍了LeetCode两数之和问题的两种解法。暴力解法通过双重循环检查所有组合,时间复杂度为O(n²)。优化解法使用哈希表存储元素及其索引,每次查询target与当前元素的差值是否存在于哈希表中,将时间复杂度降低到O(n)。文章包含JavaScript实现的代码示例,通过Map数据结构实现高效查找。原创 2025-07-24 16:18:24 · 368 阅读 · 0 评论
分享