题目在这:https://leetcode-cn.com/problems/sqrtx/

题目分析:

题目还是挺好理解的,就是给你一个数,问你它是由谁平方得来的。
比如给你4,2的平方等于4。所以返回2。
而8这种,在2的平方和3的平方之间,则取小的哪一个,返回2。

法一:

思路分析 :
如果仅仅是为了完成这题。可以直接投机取巧~

import math
return int(math.sqrt(x))

法二:

思路分析:
直接暴力循环找到合适的答案。
开头说到的8的答案为2的那种情况需要单独列出来。
当我们遍历到 某一个数的平方大于我们要找的数时。返回该数减一。
比如 8这个数。遍历到2的时候是4<8,遍历到3的时候是9>8。
所以返回2 。

x = 4
for i in range(1,99999):if i * i == x:return iif i * i > x:return i-1

法三:

思路分析:
使用二分法解决这道题。
有一个需要注意的点就是,当指针left和right相邻的时候,即left在right左边一个时,说明mid在中间已经取不到了,是小数。这时直接返回left的值就行了。
还有一点就是如果给的数是 0 和 1这两种情况要提前排除。

l = 1
r = x
if x == 0:print(0)
if x == 1:print(1)
while l<r:mid = (l+r) // 2if l+1 == r:print(l)breakelif mid ** 2 == x:print(mid)breakelif mid ** 2 >x:r = midelif mid ** 2 <x:l = mid

拿到leetcode跑的时候,记得吧print换成return然后去掉break就行了。上 面这段代码是在pycharm上测试用的,可以方便大家学习理解代码。

关于二分法,大家可以看我另一篇二分法的详解文章,保证让你很清晰。https://blog.csdn.net/qq_38737428/article/details/117903312?spm=1001.2014.3001.5501

法四:

思路分析:
使用牛顿迭代法。。。。。着法子我也不会我先去学一下回来再更

力扣(leetcode) 69. x 的平方根 (四种方法解决,总有一种是你会的~)相关推荐

  1. Leetcode-How-What 力扣Leetcode刷题指南

    Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the intervie ...

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

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

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

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

  4. 力扣(LeetCode)刷题,简单题(第14期)

    目录 第1题:配对交换 第2题:比较字符串最小字母出现频次 第3题:交替位二进制 第4题:二进制间距 第5题:最后一块石头的重量 第6题:旋转数字 第7题:十进制整数的反码 第8题:连续子数组的最大和 ...

  5. 力扣(LeetCode)刷题,简单题(第13期)

    目录 第1题:字符的最短距离 第2题:棒球比赛 第3题:判定是否互为字符重排 第4题:岛屿的周长 第5题:两个数组的交集 第6题:计算质数 第7题:旋转数组 第8题:二叉树的层平均数 第9题:修建二叉 ...

  6. 力扣(LeetCode)刷题,简单题(第2期)

    目录 第1题:搜索插入位置 第2题:外观数组 第3题:最大子序和 第4题:最后一个单词的长度 第5题:加一 第6题:二进制求和 第7题:求平方根 第8题:爬楼梯 第9题:删除排序链表中的重复元素 第1 ...

  7. 力扣 (LeetCode)-对称二叉树,树|刷题打卡

    Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者 [已开启]任务一:刷题打卡 * 10 篇 哪吒人生信条:如果你所学的东西 处于喜欢 ...

  8. VS Code刷力扣LeetCode方法

    VS Code刷力扣LeetCode方法 一.LeetCode扩展安装 二.Node.js安装 三.账号登录 3.1 选择 力扣中国版 3.2 选择 Cookies方式登录 3.3 Cookies获取 ...

  9. 在 vscode 上刷力扣 Leetcode 可以这样来

    背景 神奇的算法网站 LeetCode 值得驻留,网页版似乎不太方便,作为习惯于在编译器上敲代码的你,如何 vscode 上优雅的刷力扣 Leetcode,在本地配置,记录下来方便备查. 环境前置:电 ...

  10. 算法面试不懂这6大数据结构知识一定挂!(附力扣LeetCode真题讲解)

    本文作者:苏勇,Google 资深技术工程师 首发地址:https://mp.weixin.qq.com/s/u8pvmupISQ5D4kGIkgfKbA 在互联网行业的算法面试中经常会被考到数据结构 ...

最新文章

  1. 解决No module named 'sklearn.cross_validation'
  2. python3 异步 asyncio aiohttp aiohttp-requests aiofiles 使用
  3. SQL Server 环形缓冲区(Ring Buffer) -- 介绍
  4. Google Code Jam Round 1A 2015 解题报告
  5. boost asio resolver
  6. lightgbm 数据不平衡_不平衡数据下的机器学习(下)
  7. 入门实践,Python数据分析
  8. android按钮_Android按钮
  9. 【ACL20】让笨重的BERT问答匹配模型变快!
  10. matlab:在FUNCTION处出现解析错误:使用的MATLAB语法可能无效。
  11. 企业级POS收银系统源码(客户端+后台)
  12. 锁存器(74HCT573)使用
  13. 第二天性-人类进化的经济起源
  14. 手把手带你 Unity 入门之从零创建一个时钟(GameObjects 与 Scripts)
  15. ipad更新9.0系统更新服务器,iPhone/iPad升级iOS9出现卡顿的原因及解决办法
  16. #3 GPA计算(python)
  17. Ubuntu个人目录中文改成英文
  18. Linux进程KILL--Quit,INT,HUP,QUIT,和TERM、PIPE的解释
  19. 风控系统案例:中国移动
  20. spring中的事件监听机制

热门文章

  1. CATIA如何实现设计模块快速切换?
  2. 微信小程序UI框架记录
  3. 数字信号处理(1)- 频谱分析
  4. Python识别中国工作日,节假日,调休日。—已更新2022年
  5. 论PMP和PRINCE2的价值?
  6. 惠普i5000微型计算机,求HP 5000面板的中文解释。
  7. cesium相机控制
  8. cad 打开硬件加速卡_CAD如何根据已知条件设计图形
  9. 文件对比软件 Beyond Compare 4 破解
  10. Win7部署Web网站之IIs安装篇