【LeetCode】每日一题2021/12/02
思路 判断题目类型的依据:一个整数n,多个完全平方数,求最少数量。想到背包容量,物品价值,求最大容量下的最大价值。 dp数组定义及下标含义:dp[n+1],dp[j]表示构成j的最少完全平方数数量; dp的状态转移方程:dp[j]=min(dp[j], dp[j-i²]+1); dp初始化:dp[0]=0,其他初始化为最大值; 遍历顺序:先物品再背包(反过来也可以);
class Solution {
public int numSquares(int n) {
int[] dp = new int[n + 1];
Arrays.fill(dp, Integer.MAX_VALUE);
dp[0] = 0;
for (int i = 1; i * i <= n; i++) { // 物品
for (int j =
共有 0 条评论