一句话理解
同样是 O(n),常数可能差十倍。
为什么要学
卡常题、map 对 unordered_map、递归对循环。
讲解
复杂度记号藏起了常数。vector 比裸数组慢一点,map 的 log 常数比手写二分大。
先保证复杂度对,再在边界数据上测速度。不要一开始就微优化。
例子
n=1e7 的线性,若每步很重,仍可能 TLE。
常见错误
- 复杂度对就绝对不 TLE。
- 为了常数把代码搞不可读,却没测过。
第 155 课
同样是 O(n),常数可能差十倍。
卡常题、map 对 unordered_map、递归对循环。
复杂度记号藏起了常数。vector 比裸数组慢一点,map 的 log 常数比手写二分大。
先保证复杂度对,再在边界数据上测速度。不要一开始就微优化。
n=1e7 的线性,若每步很重,仍可能 TLE。
O(n) 一定比 O(n log n) 在实际中更快。
左右方向键也可翻课