拿下技术面上传简历

Python 的 `list.append` / C++ 的 `vector::push_back` 在容量不足时会申请更大的内存并搬移已有元素。以「容量满时容量翻倍」的策略为例: (1) 单次 append 的最坏时间复杂度是多少? (2) 为什么文档和面试里普遍说 append 是 O(1)?请把 n 次连续 append 的总代价推出来。 (3) 如果把策略换成「每次容量不足时只加 1 个位置」,结论怎么变? (4) 为什么工程实现里常见 ×2 或 ×1.5,而不是 ×1.1 或固定增量?

数据结构与算法复杂度分析1-3 年知识点 1 个

面试官在考什么

判断候选人说的 O(1) 是自己推导出来的均摊结论,还是背下来的口号;以及能否把「均摊」和「平均」「最坏」三件事分清楚。

均摊分析

回答框架 · 前两步

  1. 单次 append 最坏是 O(n):容量满时需要申请新块并搬移已有的 n 个元素。
  2. 均摊不是平均:它是对一整串操作的总代价除以操作次数,不依赖输入分布假设。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题