第5题:367.有效的完全平方数

54 阅读1分钟

题目

力扣链接:leetcode.cn/problems/va… 给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。

进阶:不要 使用任何内置的库函数,如 sqrt 。

思路

二分查找

代码

class Solution:
    def isPerfectSquare(self, num: int) -> bool:
        if num == 1:
            return True
        if num < 4:
            return False
        left, right = 2, num // 2
        while left <= right:
            mid = (right + left) >> 1
            if mid * mid == num:
                return True
            if mid * mid < num:
                left = mid + 1
            if mid * mid > num:
                right = mid - 1
        return False