和01背包的区别是选一个物品之后i不变
322. 零钱兑换 - 力扣(LeetCode)
四 · 空间优化:一个数组
class Solution {
public int coinChange(int[] coins, int amount) {
int[] f = new int[amount + 1];
Arrays.fill(f, Integer.MAX_VALUE / 2); // 除 2 是防止下面 + 1 溢出
f[0] = 0;
for (int x : coins)
for (int c = x; c <= amount; ++c)
f[c] = Math.min(f[c], f[c - x] + 1);
int ans = f[amount];
return ans < Integer.MAX_VALUE / 2 ? ans : -1;
}
}