赞
踩
今日复习了二分查找,练习了力扣上面的一些题目,记录了其中的一些题目。在关于求平方根或是完全平方数的题目中可以使用二分法。
69. x的平方根
这道题目也可以用二分查找的思想来进行解答。
class Solution:
def mySqrt(self, x: int) -> int:
# 求算数平方根 a * a = x
if x == 1: return 1
left = 1
right = x // 2
while left <= right:
mid = (left+right) // 2
if mid * mid == x:
return mid
elif mid * mid > x:
right = mid - 1
else:
left = mid + 1
return right
class Solution:
def isPerfectSquare(self, num: int) -> bool:
left = 1
right = num // 2
if num == 1: return True
while left <= right:
mid = (left+right) // 2
if mid * mid == num:
return True
elif mid * mid < num:
left = mid + 1
else:
right = mid - 1
return False
在python中可以使用sqrt
来返回平方根。
import math
print(math.sqrt(4))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。