1. 程式人生 > >leetcode367. 有效的完全平方數

leetcode367. 有效的完全平方數

https://leetcode-cn.com/problems/valid-perfect-square/

給定一個正整數 num,編寫一個函式,如果 num 是一個完全平方數,則返回 True,否則返回 False。
說明:不要使用任何內建的庫函式,如 sqrt。
示例 1:
輸入:16
輸出:True
示例 2:
輸入:14
輸出:False

二分法:

class Solution:
    def isPerfectSquare(self, num):
        """
        :type num: int
        :rtype: bool
        """
        left, right = 0, num
        while left <= right:
            mid = (left+right)//2
            if mid*mid == num:
                return True
            elif mid*mid > num:
                right = mid-1
            else:
                left = mid + 1
        return False