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++代码
|
|