搜索
您的当前位置:首页正文

[leetcode 279]Perfect Squares

来源:好走旅游网

Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.

For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9.

Credits:
Special thanks to  for adding this problem and creating all test cases.

AC代码:

class Solution
{
public:
    int numSquares(int n)
    {
        int least[n+1];
        memset(least,0,sizeof(least));
        for(int i=1;i<=n;++i)
        {
                least[i]=i;
                for(int j=1;j*j<=i;++j)
                {
                    if(j*j==n)
                        least[i]=1;
                    else
                        least[i]=least[i-j*j]+1<least[i]?least[i-j*j]+1:least[i];
                }
        }
        return least[n];
    }
};


因篇幅问题不能全部显示,请点此查看更多更全内容

Top