📅  最后修改于: 2023-12-03 15:22:21.902000             🧑  作者: Mango
当我们需要判断一个数字是否为完全平方数时,我们可以使用二分搜索来快速地进行判断。
完全平方数是指一个数是另一个整数的平方,比如 9 = 3^2,16 = 4^2。
二分搜索(Binary Search)是指在一个有序数组中查找某个元素的搜索算法。
具体实现可以分为以下几个步骤:
以下是使用二分搜索检查给定数字是否为完全平方数的代码实现:
def isPerfectSquare(num: int) -> bool:
if num < 2:
return True
left, right = 2, num // 2
while left <= right:
mid = (left + right) // 2
guess = mid * mid
if guess == num:
return True
elif guess > num:
right = mid - 1
else:
left = mid + 1
return False
以上代码首先判断给定的数字是否小于 2,如果小于 2 则直接返回 True。接着通过设置左边界和右边界,进行二分搜索,直到找到目标值或者搜索完毕。最终返回一个布尔值,表示给定数字是否为完全平方数。
使用二分搜索检查给定数字是否为完全平方数是一种高效的算法,时间复杂度为 O(log n)。当我们需要判断一个数字是否为完全平方数时,可以通过以上代码来实现。