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;
    }
}
相关推荐
Mr_pyx7 小时前
LeetCode HOT 100 —— 矩阵置零(多种解法详解)
算法·leetcode·矩阵
杰克尼7 小时前
天机学堂项目总结(day3~day4)
java·开发语言·spring
Q741_1477 小时前
每日一题 力扣 3761. 镜像对之间最小绝对距离 哈希表 数组 C++ 题解
c++·算法·leetcode·哈希算法·散列表
摇滚侠7 小时前
给我提供一个 sqlyog 下载地址
java
Seven977 小时前
【从0到1构建一个ClaudeAgent】协作-团队协议
java
我真不是小鱼7 小时前
cpp刷题打卡记录29——矩阵置零 & 旋转图像 & 除了自身以外数组的乘积
数据结构·c++·算法·leetcode·矩阵
希望永不加班7 小时前
SpringBoot 中 AOP 实现接口限流
java·spring boot·后端·spring
恼书:-(空寄7 小时前
虚拟线程:Java 高并发编程的终局?
java·虚拟线程
oyzz1207 小时前
spring loC&DI 详解
java·spring·rpc