文章目录

  • 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的平方根相关推荐

  1. LeetCode #69 x的平方根 二分查找

    LeetCode #69 x的平方根 题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍 ...

  2. LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根

    LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根 题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型 ...

  3. LeetCode - 69. x 的平方根

    69. x 的平方根 class Solution {private static final Integer MAX_POW = 46340;/*** 牛顿迭代* f(x) = x^2 - n* 切 ...

  4. LeetCode 69. x 的平方根(二分查找)

    文章目录 1. 题目 2.解题 2.1 二分查找 2.2 牛顿迭代 1. 题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果 ...

  5. LeetCode——69 x的平方根

    问题描述: 实现 int sqrt(int x) 函数.计算并返回 x 的平方根,其中 x 是非负整数.由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...

  6. Leetcode 69 x的平方根 (每日一题 20210805)

    实现 int sqrt(int x) 函数.计算并返回 x 的平方根,其中 x 是非负整数.由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去.示例 1:输入: 4 输出: 2 示例 2:输入 ...

  7. leetcode 69. x 的平方根(C语言)

    题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...

  8. LeetCode 69 X的平方根

    原题 解题思路:二分法 class Solution { public:int mySqrt(int x) {long long i=0;long long j=x/2+1;//x的平方根不大于x/2 ...

  9. leetcode 69. x 的平方根 思考分析

    题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 ...

  10. LeetCode 69 x 的平方根

    题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 题解 使用二分查找. 代码 cl ...

最新文章

  1. 三星emcp型号详解_Samsung eMCP(三星eMCP).pdf
  2. 【转载】yolo处理流程实例
  3. VirtualKD + VMWare双机调试(失败)
  4. 老股民经验之谈 这些股票买入必死无疑
  5. 聚类算法 距离矩阵_模糊聚类算法
  6. vue中如何实现点击某个地方,让echarts生成的图表发生变化
  7. [翻译]Go与C#的比较,第二篇:垃圾回收
  8. Hive安装报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient的解决办法
  9. 使用Maven导出war包
  10. python命名元组namedtuple_Python命名元组--命名元组,Pythonnamedtuple,具名
  11. lunix入侵别人电脑_排查Linux机器被入侵的11个步骤
  12. 关于GetTickCount函数的用法
  13. 广播地址的计算方法(与运算、或运算)
  14. Clark变换及比例系数2/3推导过程
  15. 计算机显示去掉拼音分类,win10系统取消电脑文件显示以字母数字拼音分组的解决方法...
  16. 如何用CSS3制作一个平面正方体和立体正方体
  17. win10 u盘 修复计算机,怎么用u盘修复windows10专业版系统
  18. 微信公众平台开发2-access_token获取及应用(含源码)
  19. iOS平台游戏安全之IPA破解原理及防御(第三弹)
  20. 产品经理 - 路漫漫其修远兮

热门文章

  1. ajax 提交list
  2. 福州大学计算机考研好考,福州大学数学考研好不好考,考研考哪些?福大数学考研考情分析。...
  3. 《软件定义车辆的风险评估和开发成本优化》 论文学习笔记
  4. 计算机科学主题 一亩三分地 考试 中心 满分95大米 (只适用于2019年 之后注册的新人) 答案
  5. python Subprocess的使用
  6. dhu 1.3 反转链表 II
  7. saltstack自动化运维一键部署rpm安装httpd和源码安装nginx
  8. 牛视源码。抖音矩阵系统,come here
  9. 塞班java软件下载,附项目源码
  10. 查看java编程环境是否配置成功