给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
思路:
类似69题求x的平方根,只需在最后添加一个判断,所求的值的平方是否为所给定的值即可
class Solution:
def isPerfectSquare(self, num: int) -> bool:
l, r, ans = 0, num, -1
if num < 0:
return(False)
while l <= r:
mid = (l + r) // 2
if mid * mid <= num:
ans = mid
l = mid + 1
else:
r = mid - 1
if ans * ans == num:
return(True)
else:
return(False)