//[0, a] 区间使用二分法找到 f (x) = 0 的解。
//思想很重要
class Solution {
public:
int mySqrt(int a)
{
if (a == 0) return a;
int l = 1, r = a, mid, sqrt;
while (l <= r)
{
mid = l + (r - l) / 2;
sqrt = a / mid;
if (sqrt == mid)
{
return mid;
}
else if (mid > sqrt)
{
r = mid - 1;
}
else
{
l = mid + 1;
}
}
return r;
}
};
【Leetcode 69】【二分法】
最新推荐文章于 2024-07-22 16:27:42 发布