Given a positive integer num, write a function which returns True if num is a perfect square else False.

Follow up: Do not use any built-in library function such as sqrt.

Example 1:
Input: num = 16
Output: true

Example 2:
Input: num = 14
Output: false

Constraints:

  • 1 <= num <= 2^31 – 1

Solution in python:

class Solution:
    def isPerfectSquare(self, num: int) -> bool:    
        def helper(left, right):
            mid = (left + right) // 2
            if left <= right:
                if mid**2 < num:
                    return helper(mid+1, right)
                elif mid**2 > num:
                    return helper(left, mid-1)
                else:
                    return True
            else: return False
        return helper(1, num)
最后修改日期: 2021年1月25日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。