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
}
相关推荐
福大大架构师每日一题8 小时前
ollama v0.35.0发布:决策模型正式上线,接口直接返回选择、概率与评分
golang
lvwangshu10 小时前
T2 最长上升子序列(lis)题解
动态规划·题解·技巧·性质题·思维好题
茉莉玫瑰花茶10 小时前
GO [ 泛型 ]
golang
lvwangshu12 小时前
T1 称重(weight)题解
题解·贪心·总结·技巧·性质题·思维好题
蛋蛋的就会顺顺的13 小时前
hot100——矩阵
java·数据结构·算法·leetcode·力扣
想吃火锅100517 小时前
【leetcode】238.除了自身以外数组的乘积js
javascript·算法·leetcode
Tisfy19 小时前
LeetCode 0020.有效的括号:栈匹配
算法·leetcode·字符串·题解·括号匹配
Navigator_Z19 小时前
LeetCode //C - 1276. Number of Burgers with No Waste of Ingredients
c语言·算法·leetcode
想吃火锅100520 小时前
【leetcode】189.轮转数组js
开发语言·javascript·leetcode
念何架构之路20 小时前
go-grpc服务端调用
开发语言·后端·golang