枚举算法的基本思想
- 枚举算法是我们在日常中使用到的最多的一个算法,它的核心思想就是:枚举所有的可能。
- 枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集合。
- 枚举结构:循环+判断语句。
枚举法的优缺点
枚举算法的优点:
- 由于枚举算法一般是现实生活中问题的“直译”,因此比较直观,易于理解;
- 由于枚举算法建立在考察大量状态、甚至是穷举所有状态的基础上,所以算法的正确性比较容易证明
枚举算法的缺点:
枚举算法的效率取决于枚举状态的数量以及单个状态枚举的代价,因此效率比较低。
使用枚举法解题的基本思路:
- 确定枚举对象、范围和判定条件。
- 逐一枚举可能的解并验证每个解是否是问题的解。
枚举算法实例:
砝码称重:
题目:
【问题描述】设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),求用这些砝码能称出不同的重量个数。
【文件输入】输入1g、2g、3g、5g、10g、20g的砝码个数。
【文件输出】输出能称出不同重量的个数。
【样例输入】1 1 0 0 0 0
【样例输出】3
源代码:
1 | import java.util.Scanner; |