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;
    }
}
相关推荐
HelloZheQ4 分钟前
深入了解 Java 字符串:基础、操作与性能优化
java·python·性能优化
魔法工坊15 分钟前
只谈C++11新特性 - 删除函数
java·开发语言·c++
落霞与孤鹭齐飞。。43 分钟前
学生考勤系统|Java|SSM|VUE| 前后端分离
java·mysql·毕业设计·课程设计
橙子家czzj1 小时前
关于 K8s 的一些基础概念整理-补充【k8s系列之二】
java·开发语言·kubernetes
云:1 小时前
寒假准备找实习复习java基础-day1
java·开发语言
罗政1 小时前
PDF书籍《手写调用链监控APM系统-Java版》第3章 配置文件系统的建立
java·pdf·linq
罗政1 小时前
PDF书籍《手写调用链监控APM系统-Java版》第11章 插件与链路的结合:HttpClient插件实现跨进程传输TraceSegment
java·开发语言·pdf
Beekeeper&&P...1 小时前
java中list和map区别
java·windows·list
李长渊哦1 小时前
使用 Spring Boot 实现文件上传:从配置文件中动态读取上传路径
java·spring boot·spring
活在大染缸中2 小时前
获取程序启动类
java