题目给到的数据范围含有很多信息,有些人一看就能想到可能用到的算法
整理一下常见的输入数据大小及可能使用到的算法
数据范围 | 最大时间复杂度 | 可能用到的算法 |
---|---|---|
n <= 30 | 指数级别 | DFS+剪枝 |
n <= 100 | n^3 | floyed、动态规划 |
n <= 1000 | n^2 | 动态规划、dijkstra、枚举 |
n <= 10000 | n*sqrt(n) | 块状链表 |
n <= 100000 | nlogn | 各种sort、线段树、树状数组、set/map、heap堆、dijkstra+heap、spfa、求凸包、求半平面交,二分 |
n <= 10000000 | o(n) | hash、双指针扫描、kmp,AC自动机、sort、树状数组、heap堆、dijkstra、spfa、线性筛素数 |
n <= 10^18 | o(logn) | 最大公约数、数论、快速幂、矩阵快速幂 |
自用笔记,逐渐补充。