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;
    }
}
相关推荐
AskHarries几秒前
Workspace:文件系统、项目上下文和执行边界
java·服务器·前端
摇滚侠2 分钟前
JavaWeb 全套教程 Servlet 66-74
java·servlet·tomcat·intellij-idea·jar
Solis程序员18 分钟前
滑动窗口热键探测与三级缓存设计
java·spring·缓存
好家伙VCC37 分钟前
区块链双向支付通道实战:从签名到结算
java·后端·区块链·asp.net
ss2731 小时前
【入门OJ题解】分苹果问题(Python/Java/C 实现)
java·c语言·python
weikecms1 小时前
美团霸王餐报名API接口
java·开发语言
李白的天不白1 小时前
配置mysql密码
java
何中应1 小时前
Nexus如何上传JAR包
java·maven·jar
我登哥MVP1 小时前
Spring Boot 从“会用”到“精通”:参数解析原理
java·spring boot·后端·spring·servlet·maven·intellij-idea
Wenzar_1 小时前
VITS+Whisper微调:低延迟TTS实战
java·人工智能·whisper