数组中的算法

数组的特性
  • 数组下标从0 开始

  • 数组是内存连续的

二分查找
  • 适用场景:有序数组

  • target 在左闭右闭即[left, right]的区间: 循环条件l <= r, 左半部分选择r = m - 1;

  • target 在左闭右开即[left, right)的区间:循环条件l < r, 左半部分选择r = m;

双指针法
  • 适用条件:对数组或链表需要两次for循环的算法

  • 快慢指针,快指针寻找需要处理的下标,慢指针指向下一个覆盖的下标

  • 相向指针,类似循环指针,在某个位置朝相反方向移动

滑动窗口
  • 窗口内是什么,一般是符合需求的子串

  • 如何移动起始位置,起始位置对应的数据不符合子串需求

  • 如何移动结束位置,结束位置对应的数据仍然符合子串需求