题目:
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt
。
示例 1:
输入:16
输出:True
示例 2:
输入:14
输出:False
Python代码:
class Solution:
def isPerfectSquare(self, num):
if num == 1:
return True
l = 1
r = num//2
while l <= r:
mid = (l+r)//2
if mid ** 2 > num:
r = mid - 1
elif mid ** 2 < num:
l = mid + 1
else:
return True
return False
心得:典型的二分法。