leetcode日常之x 的平方根(二分法求解)
题目描述
'''
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
示例 1:
输入:x = 4
输出:2
示例 2:
输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
提示:
0 <= x <= 231 - 1
'''
思路:
题目的大致意思就是:输入一个y,求其的算术平方根x
即y=x²,求x,其中y为已知的,我的想法是将其转换成一个方程,然后利用算法求其的根(我这里用的是比较简单的二分法求根,因为我只记得这个求根方法了呜呜呜)
假设输入的y已知为a,则得新的方程为:y=x²-a,求x得值
源码:
from math import floorclass Solution:def mySqrt(self, y: int) -> int:self.y = yif y < 4:return self.half(0, 2 + 1, 0.9)else:# 误差的取值 针对较小的y 误差应取较大值 针对较大的y 误差应取较小值k = 0.5 if y < 2 ** 11 else 0.00006return self.half(2, (y / 2) + 1, k)# 定义函数def f(self, x):return x ** 2 - self.y# 二分法def half(self, a, b, k) -> int:x = (a + b) / 2while abs(a - b) > k:[a, b] = [a, x] if self.f(x) * self.f(a) <= 0 else [x, b]x = (a + b) / 2return floor(x)
通过截图:
同步更新于个人博客系统:leetcode日常之x 的平方根
同步更新于个人博客系统:leetcode日常之x 的平方根
同步更新于个人博客系统:leetcode日常之x 的平方根
leetcode日常之x 的平方根(二分法求解)相关推荐
- 二分法求解非负数的平方根
二分法求解非负数的平方根.快速查找有序数组的某个元素中有广泛的应用. 二分法求解非负数的平方根的C语言程序如下: float SquareBoot(float x,float epsilon) {lo ...
- LeetCode题解:x的平方根
x的平方根(easy) 更好的阅读体验应该是: 审题-思考 答题 整理-归纳 一.题目 LeetCode:69.x 的平方根 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果 ...
- tensorflow随笔-二分法求解一元方程
tensorflow编程还是比较麻烦~ #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Mon ...
- 二分法求解方程的根java_C语言二分法求解方程根的两种方法
本文实例为大家分享了C语言二分法求解方程根的具体代码,供大家参考,具体内容如下 对于二分法求根,其实和弦截法思想很像,甚至更简单. 原理:先看如下的图 A,B两个点为跟的一个边界,通过一直缩小跟的边界 ...
- c语言实现二分法_C语言实现二分法求解方程在区间内的根
C语言实现二分法求解方程在区间内的根. 设有非线性方程: 其中, 为 上连续函数且设 (不妨设方程在 内仅有一个实根),求上述方程实根的二分法过程,就是将含根区间[a,b]逐步分半,检查函数值符号的变 ...
- 基于MATLAB二分法求解一元二次方程的根
二分法是一种常用的数值解法,在 MATLAB 中也可以使用二分法求解一元二次方程的根. 首先,需要确定一段区间,在该区间内一定存在二次方程的解,然后取该区间的中点作为新的枚举值.根据该值代入二次方程进 ...
- 二分法求解平方根注意点:
对于一个整数求解其平方根可以使用"二分法"和"牛顿法". 所谓"二分法"就是不断地缩小平方根所在的范围,直到收敛到一个数.例如求解数k的平方 ...
- python二分法求解_Python使用二分法求平方根的简单示例
这篇文章主要为大家详细介绍了Python使用二分法求平方根的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 使 ...
- LeetCode实战:x 的平方根
题目英文 Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be ...
最新文章
- 运维企业专题(5)LVS高可用与负载均衡中篇——VS/DR模式配置详解
- 循环所有数据库执行脚本
- 2知识图谱的生命周期
- freemarker-模板
- STM32 编码器的CUBEMX的使用
- 九、K8s deployment相关操作
- C++实现Behavioral - Observer模式 (转)
- pygame安装教程(python)
- 雷军第二场直播带货圆满成功,雷军代言小米试用期一个月
- SWP文件详细介绍与利用
- 人人都来写算法 之 插入排序
- 我的macbook应用清单
- layui显示分页,搜索后重置分页
- 数字197可以被称为循环素数,因为197的三个数位循环移位后的数字:197,971,719均为素数。100以内这样的数字包括13个,2,3,5,7,11,13,17,31,37,71,73,79,97
- 求任意多边形面积-有向面积
- 定时发布微信文件和消息
- python提取前几行数据_python读取文件的前几行
- [转贴]英语口语整理,灵活运用了,口语基本就没问题了。
- 风力发电控制系统的matlab,基于MATLAB的风力发电系统设计ppt课件
- 操作系统的内存管理你知道吗
热门文章
- 计算机系统崩溃了怎么办,电脑系统崩溃怎么办?如何恢复电脑里的文件方法介绍...
- 分布式发电的PQ控制研究仿真
- WiFi(6)和5G的区别及比对
- Skydrive与Office的完美结合!多方处理文档不同步问题
- 常用linux命令 超级精炼版
- STM32单片机小游戏触摸屏打地鼠2.8寸TFT液晶显示屏计分和关卡
- 手机流量翻牌抽奖活动HTML页面
- Springboot-注解-操作日志
- 计算机---网络基础小知识点11.14
- 含稀土配合物粒径小/发色性能好的聚苯乙烯荧光微球/交联羧基聚苯乙烯微球/单分散荧光微球/红色荧光微球