力扣(leetcode) 69. x 的平方根 (四种方法解决,总有一种是你会的~)
题目在这: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 的平方根 (四种方法解决,总有一种是你会的~)相关推荐
- Leetcode-How-What 力扣Leetcode刷题指南
Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the intervie ...
- 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)刷题,简单题(第14期)
目录 第1题:配对交换 第2题:比较字符串最小字母出现频次 第3题:交替位二进制 第4题:二进制间距 第5题:最后一块石头的重量 第6题:旋转数字 第7题:十进制整数的反码 第8题:连续子数组的最大和 ...
- 力扣(LeetCode)刷题,简单题(第13期)
目录 第1题:字符的最短距离 第2题:棒球比赛 第3题:判定是否互为字符重排 第4题:岛屿的周长 第5题:两个数组的交集 第6题:计算质数 第7题:旋转数组 第8题:二叉树的层平均数 第9题:修建二叉 ...
- 力扣(LeetCode)刷题,简单题(第2期)
目录 第1题:搜索插入位置 第2题:外观数组 第3题:最大子序和 第4题:最后一个单词的长度 第5题:加一 第6题:二进制求和 第7题:求平方根 第8题:爬楼梯 第9题:删除排序链表中的重复元素 第1 ...
- 力扣 (LeetCode)-对称二叉树,树|刷题打卡
Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者 [已开启]任务一:刷题打卡 * 10 篇 哪吒人生信条:如果你所学的东西 处于喜欢 ...
- VS Code刷力扣LeetCode方法
VS Code刷力扣LeetCode方法 一.LeetCode扩展安装 二.Node.js安装 三.账号登录 3.1 选择 力扣中国版 3.2 选择 Cookies方式登录 3.3 Cookies获取 ...
- 在 vscode 上刷力扣 Leetcode 可以这样来
背景 神奇的算法网站 LeetCode 值得驻留,网页版似乎不太方便,作为习惯于在编译器上敲代码的你,如何 vscode 上优雅的刷力扣 Leetcode,在本地配置,记录下来方便备查. 环境前置:电 ...
- 算法面试不懂这6大数据结构知识一定挂!(附力扣LeetCode真题讲解)
本文作者:苏勇,Google 资深技术工程师 首发地址:https://mp.weixin.qq.com/s/u8pvmupISQ5D4kGIkgfKbA 在互联网行业的算法面试中经常会被考到数据结构 ...
最新文章
- 解决No module named 'sklearn.cross_validation'
- python3 异步 asyncio aiohttp aiohttp-requests aiofiles 使用
- SQL Server 环形缓冲区(Ring Buffer) -- 介绍
- Google Code Jam Round 1A 2015 解题报告
- boost asio resolver
- lightgbm 数据不平衡_不平衡数据下的机器学习(下)
- 入门实践,Python数据分析
- android按钮_Android按钮
- 【ACL20】让笨重的BERT问答匹配模型变快!
- matlab:在FUNCTION处出现解析错误:使用的MATLAB语法可能无效。
- 企业级POS收银系统源码(客户端+后台)
- 锁存器(74HCT573)使用
- 第二天性-人类进化的经济起源
- 手把手带你 Unity 入门之从零创建一个时钟(GameObjects 与 Scripts)
- ipad更新9.0系统更新服务器,iPhone/iPad升级iOS9出现卡顿的原因及解决办法
- #3 GPA计算(python)
- Ubuntu个人目录中文改成英文
- Linux进程KILL--Quit,INT,HUP,QUIT,和TERM、PIPE的解释
- 风控系统案例:中国移动
- spring中的事件监听机制