x ,计算并返回 x 的 算术平方根 。pow(x, 0.5) 或者 x ** 0.5 。输入:x = 4 输出:2
输入:x = 8 输出:2 解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
0 <= x <= 231 - 1通过二位查找来解决,取0与x的中间值,计算平方,如果平方小于x,则将left+1继续计算,如果平方大于x,则将right-1继续寻找平方根,当left>right时,寻找结束,返回结果即可。
- class Solution {
- public int mySqrt(int x) {
- int l=0,r=x,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;
- }
- }