动态规划经典问题Java实现
动态规划问题Java实现
如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?
public class DPProblem { public static void main(String[] args) { int[] cons = new int[12]; for (int i = 1; i <= 11; i++) { int cons1 = i - 1; int cons3 = i - 3; int cons5 = i - 5; int minCons = cons[cons1]; int lastCons = cons1; if(cons3>=0 && cons[cons3] < minCons){ minCons = cons[cons3]; lastCons = cons3; } if(cons5>=0 && cons[cons5]<minCons){ minCons = cons[cons5]; lastCons = cons5; } cons[i]=minCons+1; System.out.println(i+":"+cons[i]); } } }