[*二分法]367. 有效的完全平方数

2019-05-22  本文已影响0人  好吃红薯

给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。

说明:不要使用任何内置的库函数,如 sqrt。

示例 1:

输入:16
输出:True
示例 2:

输入:14
输出:False

思路:# mid = i//2+j//2 #这么写会有问题
mid = i + (j - i) // 2,注意这两种写法的不同

class Solution:
    def isPerfectSquare(self, num: int) -> bool:
        i,j = 0,num
        
        while i<=j:
            # mid = i//2+j//2   #这么写会有问题
            mid = i + (j - i) // 2
            if mid**2 == num:
                return True
            elif mid**2 > num:
                j = mid-1
            else:
                i=mid+1
        return False
上一篇下一篇

猜你喜欢

热点阅读