给你一个正整数 num
。如果 num
是一个完全平方数,则返回 true
,否则返回 false
。
完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。
不能使用任何内置的库函数,如 sqrt
。
解题思路:其实和69题x的平方根思路与解法完全一致,就是输出不一样,69题中输出的是算数平方根或者离算数平方根最近的整数,本题输出的是对当前数值能否完全开平方的判断而已。
class Solution:
def isPerfectSquare(self, num: int) -> bool:
left = 0
right = num
while left <= right:
mid = left + (right - left)//2
if mid **2 < num:
left = mid +1
elif mid**2 >num:
right = mid -1
else:
return True
return False