您的位置:首页 > 其它

【Leetcode】Sqrt(x)

2014-05-21 12:30 447 查看
Implement
int sqrt(int x)
.

Compute and return the square root of x.

class Solution {
public:
int sqrt(int x) {
if (x < 2) return x;
int start = 1, end = x / 2;
int last_mid; // 记录最近一次mid, 无整数解时输出近似解,下取整
while(start <= end) {
int mid = (start + end) / 2;
if(x / mid > mid) { // 不要用x > mid * mid,会溢出
start = mid + 1;
last_mid = mid;
} else if(x / mid < mid) {
end = mid - 1;
} else {
return mid;
}
}
return last_mid;
}
};


View Code
二分查找。Morgen Stanley的电面就问了这个.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: