Python | Leetcode Python题解之第279题完全平方数

题目:

题解:

cpp 复制代码
class Solution {
public:
    // 判断是否为完全平方数
    bool isPerfectSquare(int x) {
        int y = sqrt(x);
        return y * y == x;
    }

    // 判断是否能表示为 4^k*(8m+7)
    bool checkAnswer4(int x) {
        while (x % 4 == 0) {
            x /= 4;
        }
        return x % 8 == 7;
    }

    int numSquares(int n) {
        if (isPerfectSquare(n)) {
            return 1;
        }
        if (checkAnswer4(n)) {
            return 4;
        }
        for (int i = 1; i * i <= n; i++) {
            int j = n - i * i;
            if (isPerfectSquare(j)) {
                return 2;
            }
        }
        return 3;
    }
};
相关推荐
且听风吟ayan2 小时前
leetcode day13 贪心 45+55
leetcode·c#
black0moonlight2 小时前
ISAAC Gym 7. 使用箭头进行数据可视化
开发语言·python
sjsjs113 小时前
【数据结构-表达式解析】【hard】力扣224. 基本计算器
数据结构·算法·leetcode
程序员黄同学3 小时前
Python 中如何创建多行字符串?
前端·python
禊月初三3 小时前
LeetCode 4.寻找两个中序数组的中位数
c++·算法·leetcode
一点一木3 小时前
AI与数据集:从零基础到全面应用的深度解析(超详细教程)
人工智能·python·tensorflow
戊子仲秋3 小时前
【LeetCode】每日一题 2024_11_23 矩阵中的蛇(哈希、计数)
leetcode·矩阵·哈希算法
A.sir啊4 小时前
Python知识点精汇:集合篇精解!
python·pycharm
周某人姓周4 小时前
利用爬虫爬取网页小说
爬虫·python
花生糖@4 小时前
OpenCV图像基础处理:通道分离与灰度转换
人工智能·python·opencv·计算机视觉