lc-go/solutions/0/q69/solution.go
2025-12-28 12:54:21 +09:00

26 lines
297 B
Go

package q69
func mySqrt(x int) int {
if x < 2 {
return x
}
l, r := 0, x/2+1
for l < r {
m := (l + r) / 2
sq := m * m
switch {
case sq == x:
return m
case sq < x:
if (m+1)*(m+1) > x {
return m
}
l = m + 1
case sq > x:
r = m
}
}
return -1
}
var _ = mySqrt