x 的平方根
题目链接: https://leetcode.cn/problems/sqrtx
解题思路:
牛顿迭代法
首先判断输入的整数是否小于 ,如果是,则返回该整数
否则,使用牛顿迭代法来计算该整数的平方根。在牛顿迭代法中,使用变量
guess
表示当前的猜测值在每次迭代中,计算
guess
的平方与该整数的差值,如果差值小于等于一个给定的精度,则返回guess
否则,将
guess
更新为(guess + x/guess) / 2
,然后继续迭代最终,当差值小于等于给定的精度时,返回
guess
即可
二分查找
首先判断输入的整数是否小于 ,如果是,则返回该整数
否则,使用二分查找算法来计算该整数的平方根。在二分查找中,使用变量
left
和right
分别表示搜索区间的左右端点在每次循环中,计算搜索区间的中间点
mid
,如果中间点的平方等于该整数,则返回中间点。如果中间点的平方小于该整数,则将搜索区间的左端点移动到中间点的右侧,否则将搜索区间的右端点移动到中间点的左侧。最终,当搜索区间的左端点大于右端点时,返回右端点即可
复杂度分析
两种思路复杂度一致
时间复杂度: 时间复杂度为
空间复杂度: 空间复杂度为
最后更新于