20 分钟
求职冲刺

复杂度分析

理解时间和空间复杂度

  • 理解大O表示法
  • 分析常见算法复杂度
  • 识别代码效率

大O表示法

示例代码(可运行)

常见复杂度排序

示例代码(可运行)
预测输出
print(1000000 in set(range(100)))
找 BugO(n²)嵌套循环,用set可优化到O(n)。
def has_duplicate(lst): for i in range(len(lst)): for j in range(i+1,len(lst)): if lst[i]==lst[j]: return True return False
填空题填写空白处的代码
二分查找的时间复杂度是O( n)
选择题

字典d[key]查找的复杂度?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

时间复杂度看「基本操作次数随输入规模 n 的增长量级」,空间复杂度看额外占用的内存;还要区分最好、最坏、平均与均摊。面试时先给能工作的暴力解并说明其复杂度,再一步步优化到更优——面试官评估的往往是你的推导过程,而不只是你是否背出了最优答案。

挑战任务

复杂度挑战

简单+50 XP

分析三种求和方法的复杂度。

复杂度挑战
2 个测试用例

课后作业

优化查找

中等+20 XP

将O(n²)的重复检查优化为O(n)。

优化查找
1 个测试用例