链接
https://leetcode-cn.com/problems/valid-perfect-square/description/
要求
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
输入:16
输出:True
输入:14
输出:False
思路
设定start和end,用random函数从(start, end)中取一个数
如果这个数的平方小于num则赋值给start
如果这个数的平方大于num则赋值给end
代码
执行用时:48 ms
import random
class Solution:
def isPerfectSquare(self, num):
start = 0
end = num
while end - start > 1:
random_num = random.randint(start, end)
if random_num ** 2 == num:
return True
elif random_num ** 2 > num:
end = random_num
else:
start = random_num
else:
if num < 2:
return True
else:
return False