美文网首页
513. 完美平方

513. 完美平方

作者: 薄荷糖的味道_fb40 | 来源:发表于2019-05-18 01:23 被阅读0次

    描述

    给一个正整数 n, 请问最少多少个完全平方数(比如1, 4, 9...)的和等于n。
    您在真实的面试中是否遇到过这个题? 是
    题目纠错

    样例

    样例 1:
    
    输入: 12
    输出: 3
    解释: 4 + 4 + 4
    样例 2:
    
    输入: 13
    输出: 2
    解释: 4 + 9
    

    思路:

    感觉和76. 最长上升子序列差不多,dp[n]表示和等于n的完全平方数(比如1, 4, 9...)个数。则dp[n]=\max_{1 < j \leq n }dp[n-j^2]+1。具体实现如下。

    class Solution {
    public:
        /**
         * @param n: a positive integer
         * @return: An integer
         */
        int numSquares(int n) {
            // write your code here
            vector<int> dp(n+1,INT_MAX);
            dp[0]=0;
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j*j<=i;j++)
                {
                    dp[i]=min(dp[i],dp[i-j*j]+1);
                }
            }
            return dp[n];
        }
    };
    

    相关文章

      网友评论

          本文标题:513. 完美平方

          本文链接:https://www.haomeiwen.com/subject/jyqzaqtx.html