题解 | #删除链表的倒数第n个节点#
求平方根
http://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c
二分法
算出 最终的值时。若值得平方大于x,则最终值-1;
若值平方小于x,则输出最终值。
public int sqrt (int x) {
// write code here
if (x < 0){
System.out.println(new Exception("算数错误"));
}
if (x == 1 || x == 0){
return x;
}
int l = 1;
int r = x/2;
while (l<r){
int mid = l + (r-l) / 2;
if (x / mid == mid){
return mid;
}else if (x / mid > mid){
l = mid + 1;
}else {
r = mid - 1;
}
}
if(l * l > x){
System.out.println((l - 1));
return l - 1;
}else{
System.out.println(l);
return l;
} 
美团工作强度 2569人发布