题目:https://oj.leetcode.com/problems/sqrtx/
Implement int sqrt(int x)
.
Compute and return the square root of x.
分析:二分查找源码:Java版本
算法分析:时间复杂度O(logn),空间复杂度O(1)
public class Solution {
public int sqrt(int x) {
if(x<=1) {
return x;
}
int left=1,closeLeft=0,middle,right=x/2;
while(left<=right) {
middle=left+(right-left)/2;
if(x/middle>middle) {
left=middle+1;
closeLeft=middle;
}else if(x/middle<middle) {
right=middle-1;
}else {
return middle;
}
}
return closeLeft;
}
}