Leetcode 367.有效的完全平方数
1 题目描述(Leetcode题目链接)
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
说明:不要使用任何内置的库函数,如 sqrt。
输入:16
输出:True
输入:14
输出:False
2 题解
二分查找
class Solution:
def isPerfectSquare(self, num: int) -> bool:
i, j = 1, num
while i < j:
mid = (i+j)//2
if mid**2 == num:
return True
elif mid**2 < num:
i = mid + 1
else:
j = mid - 1
return num == i**2
class Solution:
def isPerfectSquare(self, num: int) -> bool:
return num**0.5 % 1 == 0
前
n
n
n个奇数和:
1
+
3
+
⋯
+
(
2
n
−
1
)
=
n
2
1+3+\cdots+(2n-1)=n^2
1+3+⋯+(2n−1)=n2
class Solution:
def isPerfectSquare(self, num: int) -> bool:
i = 1
while num > 0:
num -= i
i += 2
return num == 0