leetcode-69. Sqrt(x)
题目:
mplement int sqrt(int x).
Compute and return the square root of x.
基本思路就是2分法。但是需要考虑一下,如果x的开根号之后不是整数的情况。这中情况下就找离结果最近的数,可以利用mid==i或者mid==j来判断。另外需要对1做单独处理
public class Solution {
public int mySqrt(int x) {
if(x==1) return 1;
long i = 0, j = x;
while(i<j){
long mid = (i+j)/2;
long sum = mid*mid;
if(mid==i||mid==j||sum==x) return (int)mid;
if(sum<x) i=mid;
else j=mid;
}
return (int)i;
}
}