Python-数组-复习-面试

数组 学习笔记

一、数组基础

  1. 定义
    数组是存储在连续内存空间上的同类型数据集合,Python 中一般使用列表 list 模拟数组。

  2. 核心特性

  • 内存地址连续,下标从 0 开始
  • 增、删元素时,需要移动后续元素,操作效率偏低
  • 随机访问元素速度快
  1. 学习提醒
    数组看似基础,但结合算法场景实现并不简单,一定要多动手手写代码练习。

二、数组五大经典算法题型

1. 二分法

  • 适用场景:有序数组查找元素、查找边界
  • 核心要点:区间定义保持一致性(循环不变量)
  • 区间规范二选一,不可混用:左闭右闭 [left, right] / 左闭右开 [left, right)

2. 双指针法

  • 适用场景:原地修改数组、元素筛选、数组反转等
  • 经典例题:移除数组指定元素(快慢指针)
  • 特点:原地操作,空间复杂度 O(1),执行效率高

3. 滑动窗口

  • 本质:双指针的延伸用法
  • 适用场景:连续子数组、连续子串类问题
  • 原理:用左右指针划定动态窗口,不断移动/收缩窗口求解

4. 模拟行为(循环模拟)

  • 核心思路:按照题目规则,用循环模拟实际操作
  • 重点要求:严格遵守循环不变量,处理好下标与边界,防止出错
  • 常见题型:矩阵遍历、元素移位、螺旋数组等

5. 前缀和

  • 适用场景:区间和、区间差值相关问题,优先使用该思路
  • 核心思想:提前预处理前缀和数组,将区间求和转为两数相减
  • 优势:预处理完成后,单次查询区间和时间复杂度 O(1)

三、题型速记表格

算法思路 核心用途 关键注意点
二分法 有序数组查找、找边界 区间规则统一,遵守循环不变量
双指针 原地移除元素、数组重构 快慢/左右指针分工清晰
滑动窗口 连续子数组/子串问题 动态维护窗口左右边界
模拟行为 数组/矩阵按规则遍历操作 把控下标、边界与循环不变量
前缀和 多次查询区间和、区间差 先预处理前缀和数组,再做减法运算
posted @ 2026-06-22 10:52  sciencedogegg  阅读(12)  评论(0)    收藏  举报