拼多多网站建设合同,wordpress主题no.7,免费做app网站有哪些,室内装饰设计师证书含金量动态规划
思路#xff1a; 假设 dp[i] 为最少组成数 i 的平方数个数#xff1b;则其上一个状态为 dp[i - j^2] 1#xff0c;1 为 j^2#xff1a; 即 i 的最少完全平方数 i - j^2 的最少完全平方数 1#xff0c;其中 j^2 i 为最接近 i 的平方数#xff1b;初始值…动态规划
思路 假设 dp[i] 为最少组成数 i 的平方数个数则其上一个状态为 dp[i - j^2] 11 为 j^2 即 i 的最少完全平方数 i - j^2 的最少完全平方数 1其中 j^2 i 为最接近 i 的平方数初始值dp[0] 0所以可以通过动态规划算出每一个 dp[i]
class Solution {
public:int numSquares(int n) {std::vectorint dp(n 1);dp[0] 0;for (int i 1; i n; i) {int minn INT_MAX;for (int j 1; j * j i; j) {minn std::min(minn, dp[i - j * j]);}dp[i] minn 1;}return dp[n];}
};
——————————————————————————————