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))

运行结果

相关推荐
roman_日积跬步-终至千里2 分钟前
【源码分析】StarRocks EditLog 写入与 Replay 完整流程分析
java·网络·python
_OP_CHEN5 分钟前
【算法基础篇】(三十七)图论基础之多源最短路:Floyd 算法吃透所有点对最短路径!
算法·蓝桥杯·图论·算法竞赛·floyd算法·acm/icpc·多源最短路
Web极客码5 分钟前
如何选择最适合的内容管理系统(CMS)?
java·数据库·算法
gf13211116 分钟前
python_检测音频人声片段
开发语言·python·音视频
爱笑的眼睛117 分钟前
Flask上下文API:从并发陷阱到架构原理解析
java·人工智能·python·ai
程序员三明治12 分钟前
【动态规划】01背包与完全背包问题详解,LeetCode零钱兑换II秒解,轻松解力扣
算法·leetcode·动态规划·java后端·01背包·完全背包·零钱兑换
程序猿追12 分钟前
体验LongCat-Image-Edit图像编辑模型:在昇腾NPU上的部署与推理全流程分享
python·大模型·华为云
长安牧笛13 分钟前
开发家庭宠物行为监测工具,识别宠物进食,饮水和活动情况,推送宠物健康报告。
python
自由生长202414 分钟前
大数据计算框架-流式计算的Join
算法