求一个任意实数c的算术平方根_LeetCode 题解 | 69. X 的平方根

本文介绍了如何解决LeetCode的69题,即求解非负整数x的平方根。通过二分查找法和牛顿迭代法两种策略进行求解,详细解析了算法思路、代码实现及复杂度分析,并提供了Python和Java的代码示例。
摘要由CSDN通过智能技术生成
a8f3b14e2a7da99f8d6a5ef4a9948ac7.png

本期精选题解由我们的用户“liweiwei1419”倾情撰写,一起来看看吧!

力扣 69. X 的平方根(点击查看题目)

题目描述

实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

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

示例 1:

e55f11c1e6efe11ee957968c6e47de49.png

示例 2:

51d7366a84cb3edb247580e88003253d.png

解决方案

二分查找法应用于搜索平方根的思想很简单,其实就是“猜”,但是是有策略的“猜”,用“排除法”在有限的区间里,一次排除一半的区间元素,最后只剩下一个数,这个数就是题目要求的向下取整的平方根整数。

牛顿法最初提出的时候,是用于求解方程的根,它的基本思想是“以直代曲”,在迭代中搜索得到方程的近似解。

方法一:二分法

思路分析:使用二分法搜索平方根的思想很简单,就类似于小时候我们看的电视节目中的“猜价格”游戏,高了就往低了猜,低了就往高了猜,范围越来越小。因此,使用二分法猜算术平方根就很自然。

一个数的平方根肯定不会超过它自己,不过直觉还告诉我们,一个数的平方根最多不会超过它的一半,例如 8 的平方根,8 的一半是 4,4^2 = 16 > 8,如果这个数越大越是如此,因此我们要计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值