Golang | Leetcode Golang题解之第279题完全平方数

题目:

题解:

Go 复制代码
// 判断是否为完全平方数
func isPerfectSquare(x int) bool {
    y := int(math.Sqrt(float64(x)))
    return y*y == x
}

// 判断是否能表示为 4^k*(8m+7)
func checkAnswer4(x int) bool {
    for x%4 == 0 {
        x /= 4
    }
    return x%8 == 7
}

func numSquares(n int) int {
    if isPerfectSquare(n) {
        return 1
    }
    if checkAnswer4(n) {
        return 4
    }
    for i := 1; i*i <= n; i++ {
        j := n - i*i
        if isPerfectSquare(j) {
            return 2
        }
    }
    return 3
}
相关推荐
求梦82020 分钟前
【力扣hot100题】移动零(1)
算法·leetcode·职场和发展
福大大架构师每日一题31 分钟前
2026年1月TIOBE编程语言排行榜,Go语言排名第16,Rust语言排名13。C# 当选 2025 年度编程语言。
golang·rust·c#
练习时长一年1 小时前
LeetCode热题100(爬楼梯)
算法·leetcode·职场和发展
朔北之忘 Clancy1 小时前
2020 年 6 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
梭七y1 小时前
【力扣hot100题】(133)LRU缓存
leetcode·缓存·哈希算法
im_AMBER3 小时前
Leetcode 100 在链表中插入最大公约数
数据结构·c++·笔记·学习·算法·leetcode·链表
踩坑记录3 小时前
leetcode hot100 15. 三数之和 medium
算法·leetcode·职场和发展
拔剑纵狂歌3 小时前
helm-cli安装资源时序报错问题问题
后端·docker·云原生·容器·golang·kubernetes·腾讯云
爱编程的小吴4 小时前
【力扣练习题】55. 跳跃游戏
算法·leetcode
橘颂TA5 小时前
【剑斩OFFER】算法的暴力美学——力扣 227 题:基本计算机Ⅱ
c++·算法·leetcode·职场和发展·结构于算法