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;
    }
}
相关推荐
sxlishaobin4 分钟前
设计模式之享元模式
java·设计模式·享元模式
黎明晓月6 分钟前
Redis容器化(Docker)
java·redis·docker
Wpa.wk7 分钟前
接口自动化测试 - REST-assure小练习(Java版-分层)
java·开发语言·经验分享·python·自动化·接口自动化·po
予枫的编程笔记7 分钟前
深度解析Logstash与Beats:Elastic Stack数据采集处理双核心
java·elasticsearch·logstash·beats
qq_12498707538 分钟前
基于Java的游泳馆管理系统(源码+论文+部署+安装)
java·开发语言·毕业设计·springboot·计算机毕业设计
m0_598177239 分钟前
MYSQL开发- (1)
android·java·mysql
郑州光合科技余经理14 分钟前
从国内到海外:同城o2o本地生活服务平台国际化实战
java·开发语言·javascript·mysql·uni-app·php·生活
摇滚侠15 分钟前
30分钟正则表达式教程
java
之歆22 分钟前
Spring AI入门到实战到原理源码-笔记-(上)
java·人工智能·spring
苏小瀚23 分钟前
[JavaEE] Spring Boot 日志
java·spring boot·后端