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;
    }
};
相关推荐
痛&快乐着4 分钟前
Python 包管理工具 uv 命令大全(附核心注意事项)
python·uv
专心搞代码8 分钟前
【大模型开发】python基础(二)
开发语言·python
Feibo20119 分钟前
OpenClaw部署
python
努力学习的小廉18 分钟前
Python基础——搭建 Python 环境
开发语言·python
清水白石00829 分钟前
Python 编程全景解析:四大核心容器的性能较量、语义之美与高阶实战
开发语言·数据库·python
2401_8785302129 分钟前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python
liuyao_xianhui41 分钟前
优选算法_栈_删除字符中的所有相邻重复项_C++
开发语言·数据结构·c++·python·算法·leetcode·链表
STLearner1 小时前
AI论文速读 | 元认知监控赋能深度搜索:认知神经科学启发的分层优化框架
大数据·论文阅读·人工智能·python·深度学习·学习·机器学习
老虎06271 小时前
LeetCode热题100 刷题笔记(第三天)链表 「两数相加」
笔记·leetcode·链表
林姜泽樾1 小时前
python入门第四课,运算符、转义字符和文本
python·pycharm