LeetCode 69.X的平方根
文章目录
- X的平方根
- 一、题目描述
- 二、解法
- 1、二分查找 O(logn)
- 三、小结
X的平方根
一、题目描述
给你一个非负整数 x
,计算并返回 x
的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5)
或者 x ** 0.5
。
二、解法
1、二分查找 O(logn)
由于x
的算术平方根一定在[0,x]
之中,这道题二分查找的解题思路就是,在[0,x]
范围内查找,看mid
的值是否为x
的算术平方根。
- 如果
mid*mid
大于x
,则查找范围是[left,mid-1]
。 - 如果
mid*mid
小于等于x
,则查找范围是[mid,right]
,先在mid+1
之前取ans = mid
,这样如果mid
就是算术平方根就可以直接返回。
图解算法
Java代码
class Solution {public int mySqrt(int x) {int left = 0;int right = x;int ans = -1;while(left <= right){int mid = (right + left)/2;//long强制转换,因为int有溢出风险if((long)mid*mid <= x){ans = mid;left = mid + 1;}else{right = mid -1;}}return ans;}
}
三、小结
二分查找并不局限于有序数组,有某种策略来验证中间元素,并将查找范围缩小一半就可以用二分法。
LeetCode 69.X的平方根相关推荐
- LeetCode #69 x的平方根 二分查找
LeetCode #69 x的平方根 题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍 ...
- LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根
LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根 题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型 ...
- LeetCode - 69. x 的平方根
69. x 的平方根 class Solution {private static final Integer MAX_POW = 46340;/*** 牛顿迭代* f(x) = x^2 - n* 切 ...
- LeetCode 69. x 的平方根(二分查找)
文章目录 1. 题目 2.解题 2.1 二分查找 2.2 牛顿迭代 1. 题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果 ...
- LeetCode——69 x的平方根
问题描述: 实现 int sqrt(int x) 函数.计算并返回 x 的平方根,其中 x 是非负整数.由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...
- Leetcode 69 x的平方根 (每日一题 20210805)
实现 int sqrt(int x) 函数.计算并返回 x 的平方根,其中 x 是非负整数.由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去.示例 1:输入: 4 输出: 2 示例 2:输入 ...
- leetcode 69. x 的平方根(C语言)
题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...
- LeetCode 69 X的平方根
原题 解题思路:二分法 class Solution { public:int mySqrt(int x) {long long i=0;long long j=x/2+1;//x的平方根不大于x/2 ...
- leetcode 69. x 的平方根 思考分析
题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...
- LeetCode 69 x 的平方根
题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 题解 使用二分查找. 代码 cl ...
最新文章
- 三星emcp型号详解_Samsung eMCP(三星eMCP).pdf
- 【转载】yolo处理流程实例
- VirtualKD + VMWare双机调试(失败)
- 老股民经验之谈 这些股票买入必死无疑
- 聚类算法 距离矩阵_模糊聚类算法
- vue中如何实现点击某个地方,让echarts生成的图表发生变化
- [翻译]Go与C#的比较,第二篇:垃圾回收
- Hive安装报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient的解决办法
- 使用Maven导出war包
- python命名元组namedtuple_Python命名元组--命名元组,Pythonnamedtuple,具名
- lunix入侵别人电脑_排查Linux机器被入侵的11个步骤
- 关于GetTickCount函数的用法
- 广播地址的计算方法(与运算、或运算)
- Clark变换及比例系数2/3推导过程
- 计算机显示去掉拼音分类,win10系统取消电脑文件显示以字母数字拼音分组的解决方法...
- 如何用CSS3制作一个平面正方体和立体正方体
- win10 u盘 修复计算机,怎么用u盘修复windows10专业版系统
- 微信公众平台开发2-access_token获取及应用(含源码)
- iOS平台游戏安全之IPA破解原理及防御(第三弹)
- 产品经理 - 路漫漫其修远兮
热门文章
- ajax 提交list
- 福州大学计算机考研好考,福州大学数学考研好不好考,考研考哪些?福大数学考研考情分析。...
- 《软件定义车辆的风险评估和开发成本优化》 论文学习笔记
- 计算机科学主题 一亩三分地 考试 中心 满分95大米 (只适用于2019年 之后注册的新人) 答案
- python Subprocess的使用
- dhu 1.3 反转链表 II
- saltstack自动化运维一键部署rpm安装httpd和源码安装nginx
- 牛视源码。抖音矩阵系统,come here
- 塞班java软件下载,附项目源码
- 查看java编程环境是否配置成功