69. x的平方根
分析
- 初始化:设定左右边界
l = 0
和r = x
,表示搜索区间 - 二分查找:
- 通过
(l + 1ll + r) >> 1
计算中间值mid
。这里使用了1ll
来确保计算过程中不会发生整数溢出 - 判断
mid * mid <= x
,如果成立,说明平方根的整数部分不大于mid
,我们将搜索区间的左边界l
移动到mid
- 如果
mid * mid > x
,说明平方根在mid
左边,更新右边界r
为mid - 1
- 通过
- 终止条件:当
l == r
时,搜索结束,r
即为x
的整数平方根
时间复杂度
总时间复杂度 O(logx)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|