思路:
暴力解法:从 0 开始逐步递增,求平方,找到相等或者比他小的最大值,就找到了平方根
二分查找
func mySqrt(x int) int {
left, right := 1, x
mid := left + (right-left)/2
for left <= right {
if mid*mid == x {
//注意,平方是mid*mid,mid^2是异或!
//if mid^2 == x {
return mid
} else if mid*mid > x {
right = mid - 1
} else {
left = mid + 1
}
mid = left + (right-left)/2
}
return left - 1
}