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

运行结果

相关推荐
贾斯汀玛尔斯21 分钟前
每天学一个算法--LSM-Tree(Log-Structured Merge Tree)
java·算法·lsm-tree
landyjzlai1 小时前
蓝迪哥玩转Ai(8)---端侧AI:RK3588 端侧大语言模型(LLM)开发实战指南
人工智能·python
我叫黑大帅3 小时前
如何通过 Python 实现招聘平台自动投递
后端·python·面试
其实防守也摸鱼4 小时前
CTF密码学综合教学指南--第九章
开发语言·网络·python·安全·网络安全·密码学·ctf
砚底藏山河4 小时前
Python量化开发:2026最佳实时股票数据API接口推荐与对比
开发语言·windows·python
研究点啥好呢4 小时前
专为求职者开发的“面馆”!!!摆脱面试焦虑!!!
python·面试·开源·reactjs·求职招聘·fastapi
浅念-5 小时前
刷穿LeetCode:BFS 解决 Flood Fill 算法
数据结构·c++·算法·leetcode·职场和发展·bfs·宽度优先
做cv的小昊5 小时前
【TJU】研究生应用统计学课程笔记(8)——第四章 线性模型(4.1 一元线性回归分析)
笔记·线性代数·算法·数学建模·回归·线性回归·概率论
DFT计算杂谈5 小时前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化