367. Valid Perfect Square

Easy

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

解題

Runtime: 0 ms, faster than 100.00%

Memory Usage: 1.9 MB, less than 89.02%

func isPerfectSquare(num int) bool {
    if num == 1 { return true }
    
    left := 2
    right := num / 2
    
    for left <= right {
        mid := (left + right) / 2
        product := mid * mid
        
        if  product == num {
            return true
        } else if product < num {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
    
    return false
}

Last updated