求一个数的最少的完全平方数之和等于本身的完全平方数的数量

Posted z2529827226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个数的最少的完全平方数之和等于本身的完全平方数的数量相关的知识,希望对你有一定的参考价值。

class Solution

public:
    int numSquares(int n)
    
        queue<pair<int, int> > pq; //队列中放置一组数据
        vector<bool> used(n + 1, false);
        pq.push(make_pair(n, 0));

        while (!pq.empty())
        
            int num = pq.front().first;
            int step = pq.front().second;

            pq.pop();
            for (int i = 1; num - i * i >= 0; ++i)
            
                int a = num - i * i;
               
                if (a == 0)
                
                    return step + 1;   //一旦发现为空就立即返回,因为先为空的它的层数自然也最少
                
                if (a > 0)
                
                    if (!used[a])
                    
                        pq.push(make_pair(a, step + 1));
                        used[a] = true;
                    
                
            
        
        return 0;
    
;

 

以上是关于求一个数的最少的完全平方数之和等于本身的完全平方数的数量的主要内容,如果未能解决你的问题,请参考以下文章

完全平方数

完全平方数

279. 完全平方数

279. 完全平方数

Leetcode 279.完全平方数

LeetCode 279. 完全平方数 / 牛客:多多的数字组合 / 多多的字符变换