leetcode 算法 69.x的平方根(python版)

需求

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

输入:x = 4

输出:2

示例 2

输入:x = 8

输出:2

解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

分析

可以使用二分查找的思路来求解算术平方根。

首先,设定搜索范围,最小值为0,最大值为x。

然后,通过二分查找的方式逼近算术平方根。

每次选取中间值mid,计算mid的平方。如果平方小于等于x,说明mid可能是答案的一部分,更新最小值为mid,继续搜索mid右边的范围。

如果mid的平方大于x,说明mid不是答案的一部分,更新最大值为mid。

当搜索范围缩小到最小值和最大值相等时,返回最小值即可。

代码

python 复制代码
class Solution:

    def x_sqrt(self,x):
        left=0
        right=x
        while left<=right:
            mid=(left+right)//2
            if mid*mid <= x <(mid+1)*(mid+1):
                return mid
            elif mid*mid<x:
                left=mid+1
            else:
                right=mid-1

if __name__ == '__main__':
    call=Solution()
    x=8
    print(call.x_sqrt(x))

运行结果

相关推荐
Yfhonier几秒前
6440. 极大连通图个数(DFS)
数据结构·算法·深度优先
accept 99%4 分钟前
Lovart国内直通上线!可以来体验这款甜品“设计秘书”
python
玖玥拾12 分钟前
LeetCode 1 两数之和
算法·leetcode·职场和发展
Cccp.12312 分钟前
【leetcode】(一)认识复杂度和简单排序算法
算法·排序算法
开源量化GO16 分钟前
学量化:看到“2026年 AI 写 Python”内容时,先用示例和练习补交易认知
人工智能·python
旖旎夜光21 分钟前
LeetCode 974:和可被 K 整除的子数组(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
无限码力25 分钟前
拼多多笔试真题 2026-8-30【唯一入栈出库序列】
算法·pdd笔试真题·拼多多春招笔试真题·拼多多秋招笔试真题·拼多多笔试真题题解·拼多多最新笔试题库
lvwangshu25 分钟前
分治:序列分治(CDQ)与点分治
算法·分治
无限码力30 分钟前
2026-8-30拼多多笔试真题-哪个查阅窗能留空(C++/Py/Java /Js/Go)
算法·pdd·pdd笔试真题·拼多多春招笔试真题·拼多多秋招笔试真题·拼多多笔试真题题解·拼多多笔试题解
SelectDB技术团队34 分钟前
StarRocks 适合做日志分析吗?
大数据·数据结构·后端·python·doris·日志分析·starrock