题目
力扣链接: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