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;
    }
};
相关推荐
清水白石0081 天前
Python 编程实战全景:从基础语法到插件架构、异步性能与工程最佳实践
开发语言·python·架构
yaoxin5211231 天前
390. Java IO API - WatchDir 示例
java·前端·python
武帝为此1 天前
【数据清洗缺失值处理】
python·算法·数学建模
zhangchaoxies1 天前
如何在 Go 中安全复制接口指针所指向的值
jvm·数据库·python
曲幽1 天前
FastAPI + Pydantic 模型终极实战手册:从能跑就行到固若金汤,这些技巧你一定用得上
python·fastapi·web·model·field·pydantic·validator·basemodel
计算机软件程序设计1 天前
Python Flask工程目录解读
python·flask·工程目录解读
Ares-Wang1 天前
Flask》》 Flask-OpenID 认证、 OpenID Connect (OIDC)
后端·python·flask
6Hzlia1 天前
【Hot 100 刷题计划】 LeetCode 199. 二叉树的右视图 | C++ DFS 逆序遍历
c++·leetcode·深度优先
m0_734949791 天前
怎么利用Navicat进行调整备份文件压缩等级_详细配置与操作步骤
jvm·数据库·python
m0_741173331 天前
如何处理SQL中的NULL值_使用ISNULL或COALESCE函数
jvm·数据库·python