【LeetCode】69.x的平方根

求平方根的几种方式 阅读详情

leetCode 题目描述:

实现 int sqrt(int x) 函数。

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

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

示例 1:

输入: 4
输出: 2
示例 2:

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

我的解法: 

class Solution {
    public int mySqrt(int x) {
        if(x == 0){ 
			return 0;
		}
		int result = (int)Math.pow(10,(String.valueOf(x).length()/2));
		int begin = 0,end = x;
		int count = 0;
		for(int i = 0; i < x; i++){	
			count ++;
			if(begin == end - 1 || (Math.pow(result, 2)) == x){
				break;
			}
			if((Math.pow(result, 2)) < x){
				begin = result;
				result = (result + end)/2;
			}else{
				end = result;
				result = (begin + result)/2;
			}
		}
		return result;
    }
}

思路: 总觉得 x/2 会比较小。所以使用了 转 string,确定位数折半的方法,直接取个何时的值。例如 10000 直接取 100。

这样的话,下一次在 begin -- result 或者  result --- end之间取值,感觉很合理。

需要注意的是 : 第一次 提交代码,没有考虑 0的问题,当时只看到了 负整数,忘了0,尴尬。

 第二次 提交代码,没有考虑 begin == end-1 陷入死循环,对于编程中的 除法 四舍五入原则不太清楚。

评级:

就这样了。

【简单】力扣算法题解析LeetCode69:x的平方根 题目要求计算非负整数x的算术平方根,仅保留整数部分。禁止使用内置指数函数。解法:采用二分查找法,在区间[0, x]内定位满足mid² ≤ x的最大整数。通过mid ≤ x/mid避免乘法溢出,时间复杂度为O(logx)。特殊处理x=0,初始边界设为1和x,循环更新中点和边界,最终返回有效解。示例:x=8输出2。代码通过除法替代乘法确保安全性,高效可靠。 阅读详情

相关推荐

Apple 网页 SRP 登录系列文章(四):Hashcash 工作量证明与完整登录流程

本文是Apple SRP登录系列文章的收官之作,重点解析了Apple独有的Hashcash工作量证明机制并展示了完整的登录流程实现。文章详细介绍了Hashcash的安全目的、格式标准、计算核心算法及难度评估方法,特别提供了Python实现代码。同时还讲解了如何动态获取服务器Hashcash参数以及建立容错机制。最后呈现了完整的Apple SRP登录主函数架构,为开发者提供了从理论到实践的全面指导。全文通过代码示例和流程分析,系统性地阐述了Apple安全登录机制的技术细节。

Sayid_Des的专栏 629

解平方根算法(四种解法+层层深入+逐步简化)

抛开内容不谈。你说的很有道理

m0_74215326的博客 6039

亚马逊(Amazon ads)广告API申请步骤(已经更新完)

你如果是自己的店铺使用,就选择左边的、如果是授权的那种给别人用就选右边的。审核通过了才能进行下一步,我目前就是刚申请完,后续会持续更新!然后会调整到,下面的页面,选择Agency然后右上角点击创建。审核通过会发邮件到你的企业邮箱、时间大概是1-7天左右。输入对应的信息,点击提交审核,就可以开始申请了。1、广告平台跟卖家平台是分开的,这个概念要清楚。2、注册广告一定要用企业邮箱!回到首页,点击成为合作伙伴。注册了以后会跳转到广告。然后再点击加入合作伙伴。然后会弹出下面的页面。

阿泽的博客 5655

实数:平方根、算术平方根及估算

本文介绍了平方根与算术平方根的核心知识点:1)算术平方根√a表示非负数x满足x²=a,且a≥0;2)平方根±√a包含互为相反数的两个解(0除外);3)负数没有平方根。文章详细讲解了符号表示、基础例题和估算方法,强调区分算术平方根(唯一非负解)和平方根(两个相反数解)的关键差异,并提供了1-20完全平方数表辅助估算。最后总结三大要点,提醒注意易错点,建议通过错题整理巩固学习。

weixin_51786043的博客 1843

群晖NAS搭建Git Server避坑指南:从SSH配置到权限管理的完整流程

本文提供了一份详尽的群晖NAS搭建Git Server实战指南。文章从启用并安全配置SSH服务入手,深入解析了用户权限体系设计、SSH连接与仓库初始化、客户端SSH密钥配置等核心步骤,并提供了常见错误排查与生产环境加固方案,帮助开发者成功构建私有、安全的代码托管平台。

rock5的博客 420

Python 爬取新浪财经 7x24(1): 下载数据

前言 最近在做一个需要很多财经数据的项目。于是想到可不可以通过爬虫来解决(尝试白嫖)。 提供财经数据的网站有很多个,其中比较靠谱和更新比较及时的应该是新浪7x24 live数据。 http://finance.sina.com.cn/7x24/?tag=0 这个问题有一定的难度,因为这个网页是动态加载的。每一次只会加载部分数据,而只有拉到底部才可以加载新的数据。 于是乎,我们要做的事情是: 下载数据 保存到数据库 本篇介绍如何下载数据。 代码 闲言少叙书归正文,代码的实现如下: import reque

ZJ_11701的博客 2905

surface pro 4 发热抖屏的解决方法

用了三年,同样的问题,以下方法试验中.... (以牺牲性能方法来降低发热,从而避免抖屏,不得已而为之) https://tieba.baidu.com/p/5598171696?red_tag=1289571004&amp;traceid= 1、WIN键+R进入运行框框,输入regedit,回车,启动注册表; 2、进入以下表项,HKEY_LOCAL_MACHINE\SYSTEM\Current...

Welcome to Garywang's IT BLOG. 6万+

在 VS Code 里配置 SAP Joule for Developers 的 ABAP AI side-by-side 能力

摘要: 随着ABAP开发工具链的演进,VS Code逐渐融入ABAP开发流程,SAP Joule for Developers的ABAP AI能力通过side-by-side模式(基于BTP中央服务)为多系统开发提供统一AI支持。该模式避免了各ABAP后端独立升级AI能力的碎片化问题,由管理员配置BTP订阅URL后,开发者可在ADT或VS Code中全局调用。实际落地需注意角色分工(管理员配置服务,开发者填写URL)、AI units资源规划及配置细节(如区分全局与项目级设置)。建议将Joule URL纳入

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 120

不用编程语言自带函数,你会如何实现计算平方根

内容整理自:极客时间—程序员的数学基础课 03 | 迭代法:不用编程语言自带函数,你会如何计算平方根? 1. 什么是迭代法: 迭代法,简单来说,就是不断的用旧的变量值,来递推计算新的变量值。 2. 迭代法都有哪些具体应用 求数值的精确或者近似解:典型的方法包括二分法和牛顿迭代法。 在一定范围内查找目标值:典型的方法包括二分查找。 机器学习算法中的迭代:相关的模型和算法...

qq_22398523的博客 2407

第五节_PySide6基本窗口控件_主窗口和标签

本文介绍了PySide6中主窗口和标签控件的使用。主要内容包括: 窗口控件分类: QWidget是基础窗口部件,可作为独立窗口或子部件 QMainWindow提供标准应用程序框架,包含菜单栏、工具栏等 QDialog用于对话框,支持模态交互 主窗口创建: 演示了如何创建QMainWindow子类 实现了窗口居中、设置图标、状态栏等功能 提供了窗口几何信息的获取方法 QLabel标签控件: 继承自QFrame类 用于显示文本或图像 文章通过代码示例详细说明了主窗口的创建和使用方法,包括位置控制、图标设置等常见

su桥木的博客 1021

YOLOv12改进策略【损失函数篇】| 替换Powerful-IoU(PIoU),增强对中等质量锚框的关注力,引导锚框更直接、高效地回归

本文针对现有基于IoU的损失函数在目标检测任务中存在的问题,提出了利用Powerful-IoU(PIoU)及其升级版PIoU v2改进YOLOv12的损失函数,以提高模型精度。文章详细介绍了PIoU和PIoU v2的结构原理,并提供了在YOLOv12中实现这些损失函数的具体步骤和代码修改方法。

Limiiiing的博客 931

力扣简单题系列:x 的平方根(LeetCode 69)

力扣第69题 x的平方根

weixin_53910667的博客 1846

Flutter:如何在Android中实现串口通信调试

本文介绍如何通过flutter_libserialport插件在Flutter中实现串口通信调试。

sg_knight的专栏 6098

69.力扣LeetCode_x的平方根

本文比较了两种计算整数平方根的方法。牛顿迭代法通过几何切线逼近求解,迭代次数少(3-5次)但涉及浮点运算,存在精度误差;二分法则通过整数范围二分查找,完全基于整数运算,虽然迭代次数多(约30次)但性能更高。分析表明,二分法在整数平方根计算中更具优势:1)纯整数运算避免精度问题;2)硬件执行效率更高;3)完全符合整数输出要求。结论指出,二分法更适合求解最大整数平方根问题,兼具高效性和稳定性。

2401_82472941的博客 1460

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【算法详解】力扣69.x的平方根

给你一个非负整数 x ,计算并返回 x 的 算术平方根。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如或者x ** 0.5。

HearMeRoar_的博客 1227

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

力扣 LeetCode 69. x的平方根

【代码】力扣 LeetCode 69. x的平方根。

qq_61504864的博客 226

算法第三天力扣第69题:X的平方根

解题思路:根据题意定义左右端点的值,找中间值mid为left+(right-left)/2,而且类型必须是long long型,原因是0

m0_75068978的博客 1012

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

LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根 题目描述 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将...

AI天才研究院 9033

69.x 的平方根(力扣LeetCode)

给你一个非负整数 x ,计算并返回 x 的。由于返回类型是整数,结果只保留,小数部分将被。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。输入:x = 4输出:2输入:x = 8输出:2解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。

m0_73841621的博客 618

LeetCode第 69 题:x的平方根(C++)

69. x 的平方根 - 力扣(LeetCode) 简单题。 二分法 class Solution { public: int bsearch(int x, int low, int high){ return -1; } int mySqrt(int x) { if(x == 1 || x == 0) return x; int low = 0; int high = x; long

zj 431

LeetCode 69. x 的平方根 | Python

使用二分查找的方法,解决《69. x 的平方根》问题

"大梦三千秋的博客 874

Leetcode 69 x的平方根 Java

Leetcode 69 x的平方根 这道题的标准答案应该是使用牛顿迭代法,但是现在不想看…所以记一下,这道题等空下来的时候要重新做。 我用了二分法的办法做; class Solution { public int mySqrt(int x) { int left=0,right=46340; while(left<right) { ...

qxdPx的博客 542

LeetCode第69题_x的平方根

给你一个非负整数x,计算并返回x的。由于返回类型是整数,结果只保留,小数部分将被。**注意:**不允许使用任何内置指数函数和算符,例如或者x ** 0.5。

qq_40263592的博客 2024

leetcode力扣69. x 的平方根

题目: 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。 题目意思很简单,调库函数肯定不行,那么就能想到二分。 因为我们要的结果总是左边界 意思就是比如 5 的开方,2平方小,3平方大了,我们希望要的结果是 2 ,那么就是总要在左半部分更新答案

LifeGoesOn 321

LeetCode 力扣 69. x 的平方根

题目描述(简单难度) 求一个数的平方根,不要求近似解,只需要整数部分。 解法一 二分法 本科的时候上计算方法的时候,讲过这个题的几个解法,二分法, 牛顿法,牛顿下山法,不同之处是之前是求近似解,类似误差是 0.0001 这样的。而这道题,只要求整数部分,所以先忘掉之前的解法,重新考虑一下。 求 n 的平方根的整数部分,所以平方根一定是 1,2,3 ... n 中的一个数。从一个有序序列中找一个数...

wind_liang的博客 986

力扣刷题69.x的平方根

代码的思想就是利用二分法不断进行去找,要注意的是判断 mid*mid<x时 要注意是要让 left 往右移动。在之前的文章中详细分析过二分查找跳出循环后left right 的各种情况。最后left位置是大于所找元素的第一个位置 所以-1。上述所说的整数溢出的测试用例 2147395599。该题利用这点 同样可实现查找x的平方根。

RegretM的博客 3596
上一篇: 【LeetCode】67.二进制求和
下一篇: 【LeetCode】70.爬楼梯
jy0921_
博客等级 码龄11年 329粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值