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;
    }
}
相关推荐
还在忙碌的吴小二5 分钟前
Harness 最佳实践:Java Spring Boot 项目落地 OpenSpec + Claude Code
java·开发语言·spring boot·后端·spring
风吹迎面入袖凉6 分钟前
【Redis】Redis的五种核心数据类型详解
java·redis
夕除13 分钟前
javaweb--02
java·tomcat
ailvyuanj18 分钟前
2026年Java AI开发实战:Spring AI完全指南
java
张np31 分钟前
java进阶-Dubbo
java·dubbo
汽车仪器仪表相关领域32 分钟前
NHFID-1000型非甲烷总烃分析仪:技术破局,重构固定污染源监测新体验
java·大数据·网络·人工智能·单元测试·可用性测试·安全性测试
一叶飘零_sweeeet35 分钟前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java·aqs
一叶飘零_sweeeet1 小时前
深入拆解 Java CAS:从底层原理到 ABA 问题实战
java·cas·并发编程
StackNoOverflow1 小时前
Spring Security权限控制框架详解
java·数据库·sql
yaaakaaang1 小时前
九、装饰器模式
java·装饰器模式