不可以用函数 二分法yyds
java:
class Solution {
public int mySqrt(int x) {
int l = 0;
int r = x;
int ans = -1;
while(l <= r){
int mid = l +( r - l) / 2;
if((long)mid * mid <= x){
ans = mid;
l = mid + 1;
}else{
r = mid - 1;
}
}
return ans;
}
}
python3:
class Solution:
def mySqrt(self, x: int) -> int:
l = 0
r = x
ans = -1
while l <= r:
mid = l +( r - l) // 2
if mid * mid <= x:
ans = mid
l = mid + 1
else:
r = mid - 1
return ans