10^8 经验法则
将操作次数对应到时间限制
10^8 经验法则 是 CoddyKit 上的免费 Coding Interview Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Coding Interview Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Coding Interview Prep 课程共包含 4 节课。
神奇的预算
典型的在线评测器每秒大约可以执行 10^8 次简单操作。这个数字就是整个程序可以使用的时间预算。💡
从步骤到秒数
将操作次数乘以每步的工作量,然后与时间限制比较。如果步骤数没有超出预算,您通常就能通过。
线性复杂度开销低
对 n = 10^6 执行一次 O(n) 扫描只需要一百万步,远低于预算。线性解法几乎总能轻松通过。
n log n 很安全
当 n = 10^6 时,O(n log n)排序大约需要 2 乘以 10^7 步。它仍远在一秒预算之内,因此排序很少会成为瓶颈。
二次复杂度有上限
O(n^2)方法在 n = 10^4 附近就会达到预算,此时需要执行 10^8 步。超过这个规模后,二次复杂度就会开始超时。
三次复杂度只能处理很小的规模
O(n^3)解法最多只能处理大约 n = 500。将这个数取三次方后,大约就是 10^8 步,已经接近预算上限。
指数复杂度只能处理小规模
O(2^n)每增加一步就翻倍,因此只能处理大约 20 到 25 这样很小的 n。超过这个范围,操作次数就会暴增到 10^8 以上。
Python 有额外开销
Python 每一步的速度较慢,因此对于紧密循环,请将预算按接近 10^7 来估算。当限制条件处于临界范围时,请保守一些。
注意隐藏的常数因子
10^8 规则计算的是简单步骤。循环内部的高开销工作(例如构建字符串)会增加一个常数因子,从而缩小您的实际预算。
读取时间限制
时间限制通常是 1 秒或 2 秒。2 秒的限制大致会让您的预算翻倍,为您提供更多余量。
输入代码前先估算
请先将 n 代入复杂度,并与 10^8 比较。这项快速的合理性检查可以避免您编写注定无法通过的解法。
快速检查
现在应用 10^8 规则。
回顾
现在您可以将操作次数映射到时间:每秒大约 10^8 次。线性复杂度和 n log n 很安全,二次复杂度的上限接近 10^4,并且您会在编码前进行检查。✅
常见问题解答
「10^8 经验法则」课时是免费的吗?
是的 — 「10^8 经验法则」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Coding Interview Prep 课程的其余内容,请升级到 CoddyKit PRO。 Coding Interview Prep 课程共包含 4 节课。
「10^8 经验法则」这节课中我会学到什么?
将操作次数对应到时间限制 你通过在浏览器中直接运行的动手代码来练习 Coding Interview Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Coding Interview Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Coding Interview Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「10^8 经验法则」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Coding Interview Prep 课中编写并运行代码吗?
能。每节 Coding Interview Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。