用二分法查找平方根:
class Solution: def isPerfectSquare(self, num: int) -> bool: # 初始化左右边界 left = 1 right = num # 开始二分查找 while left <= right: # 计算中间值 mid = left + (right - left) // 2 # 比较中间值的平方与原数 if mid * mid == num: # 如果中间值的平方等于原数 return True # 原数是平方数,返回True elif mid * mid < num: # 如果中间值的平方小于原数 left = mid + 1 # 更新左边界为mid + 1,继续搜索右半部分 else: # 如果中间值的平方大于原数 right = mid - 1 # 更新右边界为mid - 1,继续搜索左半部分 # 如果循环结束仍未找到平方根,则原数不是平方数,返回False return False
标签:right,num,leedcode,二分法,查找,left From: https://www.cnblogs.com/yyyjw/p/18132863