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
}