[Java]Leetcode69 Sqrt(x)
Implement int sqrt(int x)
.Compute and return the square root of x.
题意:算一个数的平方根。
好不容易想到用二分查找来解决改题,但是也破费了点力气,放到eclipse中调试来出来。注意点就是:取中值相乘,有可能会超过整数的最大范围,所以比较的时候就会出错。所以在定义的时候全部定义为long型。
第一版:
public int mySqrt(int x){if (x == 0)return 0;long low = 1;long high = x;long tmp;long mid = 1;while (low <= high)//二分查找{mid = (low + high) / 2;tmp = mid * mid;if (tmp == x)return (int)mid;else if (tmp > x)high = mid - 1;else if (tmp < x)low = mid + 1;}return (int)((mid*mid)>x?mid-1:mid);}
我们可以将上述的代码再改进一下:
public int mySqrt(int x){long low = 0;long high = x/2+1;//平方根的值按规律发现不会大于它的中值+1。这样每个查找就少了一次long tmp;long mid = 1;while (low <= high){mid = (low + high) / 2;tmp = mid * mid;if (tmp == x)return (int)mid;else if (tmp > x)high = mid - 1;else if (tmp < x)low = mid + 1;}return (int)high;}
[Java]Leetcode69 Sqrt(x)相关推荐
- LeetCode-69 Sqrt(x)
LeetCode-69 Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 思路:二分法. 比较要留 ...
- Leetcode-69 Sqrt(x)
题目介绍 Implement int sqrt(int x). Compute and return the square root of x. 解决方法 int sqrt(int x) {if (0 ...
- [LeetCode-69]-Sqrt(根号运算)
文章目录 题目相关 Solution 1. 调用已有的库函数 题目相关 [题目解读] [原题描述]原题链接 Implement int sqrt(int x). Compute and return ...
- sqrt开平方算法解析
昨天笔试遇到一题,要求用java实现sqrt,当时就想,哪里管过怎么实现的,都是直接拿来用的.所以晚上就查了一些资料,将实现过程整理如下: 图示: 算法思路(说明,下面的"碎片被开方数&qu ...
- java 课后习题 二维坐标距离 三角形判断等
知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...
- 【JAVA 第四章 流程控制语句】课后习题 二维坐标距离 三角形判断等
知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...
- Java学习第七课...枚举.自动装箱.静态导入...-asp.net关注
枚举使用enum这个关键字: enum Transport {CAR,TRUCK,AIRPLANE,TRAIN,BOAT} 虽然是对象,但是不能使用new... 声明一个枚举类型的变量: Transp ...
- Java实例教程(上)
第一个Java程序 Java 枚举 Java注释 Java创建对象 Java访问实例变量和方法 Java局部变量实例 Java编译错误 Java 实例变量示例 Java类变量 静态变量示例 Java静 ...
- Java(JavaEE)学习线路图
Java学习线路图 Java教程 Java 教程 Java 简介 Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java变量类型 Java修饰符 Java运算 ...
最新文章
- 高效整洁CSS代码原则
- bpmn js 生成json_你不知道的 tsconfig.json
- boost::type_erasure模块实现了支持多个签名的 Boost.Function 扩展
- python从oracle提取数据库_[python] python 和远程oracle 数据库连接,select提取文件 环境搭建过程...
- python手动安装包_python pip如何手动安装二进制包
- 【pytorch】torch.range() 和 torch.arange() ==>以step为间隔输出从start到end的张量列表
- python treeview显示多列_Python Gtk TreeView列数据显示
- 安装完补丁后是否需要服务器重新启动
- 浅析vue2.0的diff算法
- 常用的linux文件权限
- 高中计算机竞赛教案,信息技术教学案例评比——选择排序的算法实现(金华第一中学)...
- 生产过程代码分析(二)--估计
- BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】
- ikm2022/IKM考试/ikm java
- html语言代码 输入文字,html语言教程文字代码:
- 贾俊平统计学思维导图- 第八章 假设检验
- ios android 视频格式,最佳iOS Android手机通用格式高清视频播放器: nPlayer-cue文件
- 计算机音乐谱成都.,抖音成都计算器谱子是什么 抖音成都计算器谱子分享
- 服务器装系统bios设置方法,重装系统时BIOS的设置方法
- 看大品牌如何玩转小程序