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

题目:

题解:

java 复制代码
class Solution {
    public 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;
    }

    // 判断是否为完全平方数
    public boolean isPerfectSquare(int x) {
        int y = (int) Math.sqrt(x);
        return y * y == x;
    }

    // 判断是否能表示为 4^k*(8m+7)
    public boolean checkAnswer4(int x) {
        while (x % 4 == 0) {
            x /= 4;
        }
        return x % 8 == 7;
    }
}
相关推荐
我命由我1234514 小时前
Git 创建新分支并推送到远程仓库
java·服务器·git·后端·学习·java-ee·学习方法
滴滴答滴答答14 小时前
机考刷题之 12 LeetCode 684 冗余的边
算法·leetcode·职场和发展
014-code14 小时前
手把手带你解读 Dockerfile - 最快上手方法
java·docker·容器·持续部署
傻啦嘿哟14 小时前
爬虫跑了一小时还没完?换成列表推导式,我提前下班了
java·开发语言·jvm
xiaoye370814 小时前
Spring 动态代理源码深度分析
java·后端·spring
codeyanwu14 小时前
LeetCode Hot 100 -- 图论
leetcode·深度优先·图论
青槿吖14 小时前
第一篇:Spring面试高频三连问:容器区别|Bean作用域|生命周期,一篇拿捏!
java·开发语言·网络·网络协议·spring·面试·rpc
摇滚侠14 小时前
java: Cannot compile module ‘consumer‘ configured for JVM target 17
java·jvm
带刺的坐椅14 小时前
snack4-jsonpath v4.0.36 发布(支持 IETF RFC 9535 标准)
java·json·jsonpath·snack4
巫山老妖14 小时前
OpenClaw 技术教程大全:从安装到多 Agent 协作,全在这里
java·前端