Given a positive integer num, write a function which returns True if num is a perfect square else False.
Note: Do not use any built-in library function such as sqrt.
Example 1:
Input: 16
Returns: True
Example 2:
Input: 14
Returns: False
解题方法,用二分法。因为说明了是正数,所以num>=1。
func isPerfectSquare(num int) bool {
if num == 1 {
return true
}
left, right := 0, num/2
for left <= right {
mid := (left + right) / 2
val := mid * mid
if val == num {
return true
} else if val > num {
right = mid - 1
} else {
left = mid + 1
}
}
return false
}
转载请注明原文地址: https://ju.6miu.com/read-38158.html