Skip to main content
左右指针

左右指针

一、概念

所谓左右指针,就是两个指针相向而行或者相背而行;而所谓快慢指针,就是两个指针同向而行,一快一慢。

左右指针在我们算法中使用是非常广泛的,一般解决问题包括但是不仅限于两数之和类问题,翻转数组,双指针问题又可以进行细分为,滑动窗口,二分查找等具体的技巧。但是滑动窗口,二分查找,已经开始自立门派,自成体系了。

二、经典题目

15. 三数之和


Y-aong...About 3 min算法笔记左右指针双指针
1、二分搜索个人总结

1、二分搜索个人总结

一、二分查找定义

二分查找的基本思想是很简单的可能很多小学生都可以思考出来,但是实际去 写又会遇到很多问题。因为里面有很多细节需要注意。一不小心就会写失败。

二分查找的基本算法思想为:通过确定目标元素所在的区间范围,反复将查找范围减半,直到找到元素或找不到该元素为止。

二、二分查找的算法步骤

  1. 初始化:首先,确定要查找的有序数据集合。可以是一个数组或列表,确保其中的元素按照升序或者降序排列。
  2. 确定查找范围:将整个有序数组集合的查找范围确定为整个数组范围区间,即左边界 left 和右边界 right。
  3. 计算中间元素:根据 mid=⌊(left+right)/2⌋ 计算出中间元素下标位置 mid
  4. 比较中间元素:将目标元素target 与中间元素 nums[mid]进行比较:
    • target == nums[mid]找到目标索引
    • target < nums[mid]目标位置在[left, mid-1], right=mid-1
    • target > nums[mid]目标位置在[mid+1, right],left=mid+1

Y-aong...About 9 min算法笔记左右指针双指针