标签:
Implement int sqrt(int x)
.
Compute and return the square root of x.
实现 int sqrt(int x),计算X的平方根。
这道题如果是求double精度的平方根,可以用牛顿法,而这里只需要整数精度,所以使用二分查找法即可,查找范围是0~x,其中间的数mid,比较mid*mid与x的大小,然后更新范围,继续往下迭代,直到范围为空。时间复杂度是O(log x)。给出代码如下:
int mySqrt(int x) { if (x < 0) return -1; int i = 0, j = x; while (i<=j) { int64_t mid = i+(j-i)/2; if (mid*mid <= x) i = mid + 1; else j = mid-1; } return j; }
标签:
原文地址:http://www.cnblogs.com/zhiguoxu/p/5495267.html