拿下技术面上传简历

阅读下面的 Python 函数,n 是正整数。请分析它的时间复杂度(以 total += 1 的执行次数为准)和额外空间复杂度,并说出推导过程。 ```python def h(n): total = 0 i = 1 while i <= n: for j in range(i): total += 1 i *= 2 return total ```

数据结构与算法复杂度分析校招知识点 1 个

面试官在考什么

判断候选人是真的按循环变量的变化去累计执行次数,还是看到“外层像 log n 层、内层最多 n 次”就直接相乘。

时间/空间复杂度

回答框架 · 前两步

  1. 外层 while 的 i 取值为 1, 2, 4, …, 2^k(2^k ≤ n),共 ⌊log2 n⌋ + 1 次。
  2. 内层总执行次数是等比数列之和 1 + 2 + 4 + … + 2^k = 2^(k+1) − 1,不超过 2n − 1。

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

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

延伸阅读

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

同一能力域的其他题