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;
    }
}
相关推荐
Full Stack Developme14 小时前
Spring Boot 事务管理完整教程
java·数据库·spring boot
城管不管14 小时前
前后端远程协作
java
青云计划14 小时前
Feed流
java·后端·spring
java1234_小锋15 小时前
String、StringBuilder、StringBuffer的区别?
java·开发语言
星原望野15 小时前
JAVA集合:List、Set和Map
java·开发语言·list·set·map·集合
2601_9577875815 小时前
星链引擎矩阵系统:插件化多平台 API 网关与账号级隔离技术实践
java·矩阵·插件化架构
多敲代码防脱发16 小时前
Spring进阶(容器实现)
java·开发语言·后端·spring
星辰_mya16 小时前
彩云之上——[特殊字符]的架构师
java·后端·微服务·面试·架构
phltxy16 小时前
Redis 主从复制
java·数据库·redis
Full Stack Developme16 小时前
Spring-Core 解析
java·spring·rpc