279. 完全平方数
✅装满完全背包的最小物品总价值
仍然如题,不过这一题的每一个物品的价值需要自己算出来\
其余的都是套模板的老生常谈了
class Solution {
public:
//装满完全背包后物品的最小总价值
int numSquares(int n) {
vector<int>value;
vector<int>dp (n + 1, 99999);
dp[0] = 0;
for (int i = 1; i <= sqrt(n); i++) {
//这里i * i就是下标为i的物品的价值了,故这里物品下标就只需要遍历到sqrt(i)就够了
//用<代替<=,可以有效缩短一点时间,所谓积少成多!好习惯总不会有错!
for (int j = i * i; j < n + 1; j++) {
dp[j] = min(dp[j], dp[j - i * i] + 1);
}
}
return dp[n];
}
};

浙公网安备 33010602011771号