public int numSquares(int n) {
int max = Integer.MAX_VALUE;
int[] dp = new int[n+1];
//初始化
for(int j = 0; j <= n; j++) {
dp[j] = max;
}
dp[0] = 0;//当和为0时,组合的个数为0
for(int i = 1; i * i <= n; i++) {//先遍历物品
for(int j = i*i; j <= n;j++) {//再遍历背包
if(dp[j - i*i] != max) {
dp[j] = Math.min(dp[j], dp[j-i*i]+1);
}
}
}
return dp[n];
}
完全平方数——【LeetCode】
最新推荐文章于 2024-07-25 11:15:54 发布