网站备案信息真实性核验单 打印 隐藏/搜索引擎推广简称
题目描述:
(1)实现 int sqrt(int x) 函数。
(2)计算并返回 x 的平方根,其中 x 是非负整数。
(3)由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
For循环
class Solution {public int mySqrt(int x) {for (long i = 0; i <= (x/2 + 1); i++){if( i * i == x){return (int)i;}else if(i * i > x){return (int)i-1;}}return 1;}
}
二分查找
class Solution {public int mySqrt(int x) {int l=0,r=x;while (l<=r)//二分查找{long mid=(r+l)/2;//防止溢出if(mid*mid==x)return (int)mid;else if(mid*mid<x)l=(int)mid+1;else r=(int)mid-1;}return r;}
}