01 什么是算法?
规格、步骤、正确性与资源取舍
本节 12 题。先独立给出结论和理由,再对照解析;新增题与此前题目统一编号。涉及标签时,标签只表示记录身份。
第 01 题
问题 1
算法与 Python 程序有什么区别?
第 02 题
问题 2
设计“返回最大值”接口前,至少说明哪些输入与输出约定?
第 03 题
问题 3
把最大值初始设为 0,对 [-5,-2] 会发生什么?
第 04 题
问题 4
逐项求最大值处理完前 k 项后,应维护什么不变式?
第 05 题
问题 5
非空 n 项列表求最大值,键比较多少次?
第 06 题
问题 6
教材 maximum 与 maximum_indexed 都是 O(n) 时间,额外空间一样吗?
第 07 题
问题 7
“测试十个输入都正确,因此已证明全部输入正确”对吗?
第 08 题
问题 8
反复按姓名搜索,何时建立字典索引可能值得?
第 09 题
问题 9
建立姓名到记录的 dict 时,重复姓名有什么风险?
第 10 题
问题 10
二分循环每次不缩小候选范围,可能有什么问题?
第 11 题
问题 11
速度更快但内存超预算的算法一定更适合吗?
第 12 题
问题 12
已经有现成排序库,学习排序原理还有什么实际价值?