文章目录

  • 1. 题目
  • 2.解题
    • 2.1 二分查找
    • 2.2 牛顿迭代

1. 题目

实现 int sqrt(int x) 函数。

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

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

示例 1:输入: 4
输出: 2
示例 2:输入: 8
输出: 2
说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sqrtx
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.解题

2.1 二分查找

  • 二分查找
class Solution {public:int mySqrt(int x) {if(x <= 1)return x;double left = 1, right = x/2+1, mid;while(right-left > 0.00001){mid = (left+right)/2;if(mid*mid > x)right = mid;elseleft = mid;}return floor(right);}
};

2.2 牛顿迭代

class Solution {public:int mySqrt(int x) {if(x <= 1)return x;double x0 = x, x1, c = x;while(1){x1 = 0.5*(c/x0 + x0);if(fabs(x0-x1) < 1e-6)break;x0 = x1;}return x0;}
};

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刷题笔记:二分查找(简单)

    LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...

  4. 【Leetcode | 顺序刷题 】二分查找目录

    二分查找 序号 题号 1 29. 两数相除   50. Pow(x, n)   69. x 的平方根                                                   ...

  5. LeetCode - 69. x 的平方根

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

  6. LeetCode算法题4:二分查找及扩展应用

    文章目录 前言 一.二分查找 二.第一个错误的版本 三.搜索插入位置 总结 前言 Leetcode算法系列:https://leetcode-cn.com/study-plan/algorithms/ ...

  7. LeetCode 1891. 割绳子(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个整数数组 ribbons 和一个整数 k,数组每项 ribbons[i] 表示第 i 条绳子的长度. 对于每条绳子,你可以将任意切割成一系列长度为 ...

  8. LeetCode 911. 在线选举(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 在选举中,第 i 张票是在时间为 times[i] 时投给 persons[i] 的. 现在,我们想要实现下面的查询函数: TopVotedCandida ...

  9. LeetCode 162. 寻找峰值(二分查找)

    1. 题目 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一 ...

最新文章

  1. IntelliJ IDEA 2019.3 发布,启动更快,性能更好(新特性解读)
  2. 混合深度卷积,更少参数下的轻量级网络
  3. 简明python教程 --C++程序员的视角(二):函数及作用域
  4. 一位非常要好的朋友,零基础转行 Python!
  5. 【ZZ】大数据架构师基础:hadoop家族,Cloudera系列产品介绍
  6. PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder
  7. unix与linux的区别_Linux与Unix:有什么区别?
  8. 随想录(学习英文的好处)
  9. Oracle 多行变一列的方法
  10. 马化腾:卓越领导者的五种习惯(作出表率尤为重要)
  11. C++设计模式10--命令模式(二)(Command)--降低请求发送者与接收者耦合
  12. 甲方在IT信息化中的项目管理
  13. linux 脚本里切换用户密码,shell,切换用户,执行指定,脚本
  14. 大数据相加_大数据相加
  15. matlab 开4次方根,matlab中计算四次方方程a*x^4+b*x+c=0的实数根.
  16. C++实现基于博弈树的5x5一子棋人机对战
  17. NLP(自然语言处理) - Tricks Dataset 集合
  18. Speedoffice(word)如何设置分栏
  19. 免费思维导图软件, 简单脑图工具,支持导出图片
  20. 一文告诉你什么叫边缘计算

热门文章

  1. FreeRTOS系列第19篇---FreeRTOS信号量
  2. 怎么用计算机画正弦函数图像,几何画板如何绘制正弦函数图象
  3. 小android模拟器,小姚Android模拟器工作室版本v6.2.7.0正式版
  4. Codeforces Round #533 (Div. 2) C.思维dp D. 多源BFS
  5. BZOJ1876 [SDOI2009]SuperGCD 【高精 + GCD优化】
  6. 无法解析的外部符号,无法解析的外部命令
  7. C# 委托 / 跨线程访问UI / 线程间操作无效: 从不是创建控件“Form1”的线程访问它...
  8. thinkpad s3 安装win8 kali双系统笔记
  9. 开源代码分析技巧之——打印调用逻辑
  10. SQL PROCEDURE和 FUNCTION的区别