08-基础算法/02-简单枚举
简单枚举
枚举(枚举法/穷举法)是最直观的算法思想:列出所有可能的情况,逐一检查是否符合要求。
基本模板
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
for (int k = 1; k <= n; k++)
if (check(i, j, k))
ans++;
优化方向
- 减少枚举范围:通过数学分析减少不必要的枚举
- 剪枝:在枚举过程中提前排除不可能的方案
- 改变枚举顺序:先枚举约束多的变量
- 使用哈希表:用空间换时间(如两数之和问题)
经典例题
| 题型 | 说明 |
|---|---|
| 百钱买百鸡 | 枚举鸡的数量,满足总价和总数 |
| 水仙花数 | 枚举三位数,各位立方和等于自身 |
| 完全平方数 | 枚举范围内的完全平方数 |
| 勾股数 | 枚举直角三角形的三条边 |