p143 最少完全平方数分解(leetcode 279)

一:解题思路

Time:O(n^3/2),Space:O(n)

二:完整代码示例 (C++版和Java版)

C++:

class Solution {
public:
    int numSquares(int n) 
    {
        vector<int> d(n+1);
        d[0] = 0;
        for (int i = 1; i <= n; i++)
        {
            d[i] = i;
            for (int j = 1; j*j <= i; j++)
                d[i] = min(d[i],d[i-j*j]+1);
        }

        return d[n];
    }
};

Java:

class Solution {
        public int numSquares(int n)
        {
               int[] d=new int[n+1];
               d[0]=0;
               for(int i=1;i<=n;i++)
               {
                   d[i]=i;
                   for(int j=1;j*j<=i;j++)
                       d[i]=Math.min(d[i],d[i-j*j]+1);
               }
               
               return d[n];
        }
    }

猜你喜欢

转载自www.cnblogs.com/repinkply/p/12726813.html