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;
    }
};
相关推荐
18你磊哥12 小时前
Django WEB 简单项目创建与结构讲解
前端·python·django·sqlite
月殇_木言13 小时前
Python期末复习
开发语言·python
Booksort13 小时前
【LeetCode】算法技巧专题(持续更新)
算法·leetcode·职场和发展
小白程序员成长日记13 小时前
力扣每日一题 2025.11.28
算法·leetcode·职场和发展
Swift社区13 小时前
LeetCode 435 - 无重叠区间
算法·leetcode·职场和发展
sin_hielo13 小时前
leetcode 1018
算法·leetcode
橘颂TA14 小时前
【剑斩OFFER】算法的暴力美学——只出现一次的数字 ||
算法·leetcode·动态规划
BBB努力学习程序设计14 小时前
Python面向对象编程:从代码搬运工到架构师
python·pycharm
rising start15 小时前
五、python正则表达式
python·正则表达式
BBB努力学习程序设计15 小时前
Python错误处理艺术:从崩溃到优雅恢复的蜕变
python·pycharm