LeetCode 279.完全平方数

LeetCode 279.完全平方数

bfs写法,还有四平方定理,那个看不懂

public:
    int numSquares(int n) {
        vector<bool> vis(n+1,false);
                queue<pair<int,int>> q;
                q.push(make_pair(n,0));
                while(!q.empty())
                {
                    int num=q.front().first;
                    int step=q.front().second;
                    q.pop();
                    for(int i=1;num-i*i>=0;++i)
                    {
                        int temp=num-i*i;
                        if(temp<0)
                            break;
                        if(temp==0)
                            return step+1;
                        if(!vis[temp])
                        {
                            q.push(make_pair(temp,step+1));
                            vis[temp]=true;
                        }
                    }
                }
    }

你可能感兴趣的:(LeetCode,ACM)