嘉兴城乡建设局网站,铁岭手机网站建设,精通网站开发书籍,家政网站模板下载题目描述 给你一个整数 n #xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数#xff0c;其值等于另一个整数的平方#xff1b;换句话说#xff0c;其值等于一个整数自乘的积。例如#xff0c;1、4、9 和 16 都是完全平方数#xff0c;而 3 和 11 …题目描述 给你一个整数 n 返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数其值等于另一个整数的平方换句话说其值等于一个整数自乘的积。例如1、4、9 和 16 都是完全平方数而 3 和 11 不是。 来源力扣LeetCode 链接https://leetcode.cn/problems/perfect-squares 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 解题
动态规划
n 0: result 0n 1: result 1n 2: result 2 ------- (result(n1) result(n1))n 3: result 1 ------- (result(n1) result(n2))n 4: result 1 ------- (sqrt(4)是整数)n 5: result 2 ------- (result(n1) result(n4) result(n2) result(n3) )的最小值以此类推
class Solution {public int numSquares(int n) {int[] dp new int[n 1];dp[1] 1;if(n 1){return dp[1];}for (int i 2; i n 1; i) {int temp Integer.MAX_VALUE;if (Math.sqrt(i) % 1 0) {dp[i] 1;} else {for (int j 1; j i / 2 1; j) {temp Math.min(dp[i - j] dp[j], temp);}dp[i] temp;}}return dp[n];}
}