LeetCode69——Sqrt(x)
题意:
实现 开根号,返回整型,如果不能完全平方,则结果返回不超过结果的最大整数。
方法:用二分法求解,分两种情况:
1.完全平方数直接返回即可。
2.不是完全平方数根据最后查找失败low与high的位置来返回结果。
注:注意0和1的情况
代码:
class Solution {
public:
int mySqrt(int x) {
if (x == 1||x==0)
return x;
long low = 1;
long high = x;
while (low < high)
{
long mid = low + (high - low) / 2;
if (mid*mid > x)
high = mid;
else if (mid*mid < x)
{
low = mid + 1;
}
else
{
return mid;
}
}
return low-1;
}
};
本文详细解析了LeetCode第69题“Sqrt(x)”,介绍了如何使用二分法来实现开方运算,并针对特殊情况如0和1进行了讨论。提供了一段C++代码示例,帮助读者理解算法细节。
958

被折叠的 条评论
为什么被折叠?



