1.题目描述
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
示例 1:
输入:16
输出:True
示例 2:输入:14
输出:False
2.解题思路
方法一:
从1搜索到 sqrt(num),看有没有平方正好等于 num 的数
方法二:
二分查找
3.代码实现
方法一:
class Solution:
def isPerfectSquare(self, num: int) -> bool:
i = 1
while i <= num//i:
if i * i == num:
return True
elif i * i > num:
return False
else:
i += 1
方法二:
扫描二维码关注公众号,回复:
9427052 查看本文章
class Solution(object):
def isPerfectSquare(self, num):
"""
:type num: int
:rtype: bool
"""
left = 0
right = num
while left <= right:
mid = (left + right)//2
if mid * mid == num:
return True
elif mid * mid > num:
right = mid -1
else:
left = mid + 1
return False