367 有效的完全平方数-简单

题目:

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false

完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。

不能使用任何内置的库函数,如 sqrt

分析:

如果存在一个数 x 的平方等于 num,那么这个数一定是1<=x <= num

所以我们直接对[1, num]区间中的数进行二分查找。

// date 2023/12/05
func isPerfectSquare(num int) bool {
    left, right := 0, num

    for left <= right {
        mid := (left + right) / 2
        v := mid * mid
        if v == num {
            return true
        } else if v < num {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
    return false
}

最后更新于