leetcode69——Sqrt(x)

题目大意:求出所给非负数的平方根,如果平方根不是整数,则返回值只截取整数部分

分析:数学考察+二分搜索。

代码:注意不要用int,否则mid*mid可能会溢出

class Solution {
public:
int mySqrt(int x) {
long long left = 0, right = x;
while (left <= right) {
long long mid = (left + right) / 2;
if (mid * mid > x) {
right = mid - 1;
}
else if (mid * mid < x) {
left = mid + 1;
}
else return (int)mid;
}
return (int)right;
}
};

猜你喜欢

转载自blog.csdn.net/tzyshiwolaogongya/article/details/80290901
今日推荐