贪心法求解不难,证明贪心法是最优解才难
/**
* 贪心法求解拼纸币问题
* @param arr 纸币的价值
* @param res 目标值
* @param list 存储结果集
*/
void df(int[] arr, int res, List<Integer> list) {
for (int i = arr.length - 1; i >= 0; i--) {
//优先找局部最优解,每次认为都是找尽可能大的纸币匹配
if (res >= arr[i]) {
list.add(arr[i]);
df(arr, res - arr[i], list);
break;
}
}
}