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)相关推荐

  1. LeetCode-69 Sqrt(x)

    LeetCode-69 Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 思路:二分法. 比较要留 ...

  2. Leetcode-69 Sqrt(x)

    题目介绍 Implement int sqrt(int x). Compute and return the square root of x. 解决方法 int sqrt(int x) {if (0 ...

  3. [LeetCode-69]-Sqrt(根号运算)

    文章目录 题目相关 Solution 1. 调用已有的库函数 题目相关 [题目解读] [原题描述]原题链接 Implement int sqrt(int x). Compute and return ...

  4. sqrt开平方算法解析

    昨天笔试遇到一题,要求用java实现sqrt,当时就想,哪里管过怎么实现的,都是直接拿来用的.所以晚上就查了一些资料,将实现过程整理如下: 图示: 算法思路(说明,下面的"碎片被开方数&qu ...

  5. java 课后习题 二维坐标距离 三角形判断等

    知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...

  6. 【JAVA 第四章 流程控制语句】课后习题 二维坐标距离 三角形判断等

    知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...

  7. Java学习第七课...枚举.自动装箱.静态导入...-asp.net关注

    枚举使用enum这个关键字: enum Transport {CAR,TRUCK,AIRPLANE,TRAIN,BOAT} 虽然是对象,但是不能使用new... 声明一个枚举类型的变量: Transp ...

  8. Java实例教程(上)

    第一个Java程序 Java 枚举 Java注释 Java创建对象 Java访问实例变量和方法 Java局部变量实例 Java编译错误 Java 实例变量示例 Java类变量 静态变量示例 Java静 ...

  9. Java(JavaEE)学习线路图

    Java学习线路图 Java教程 Java 教程 Java 简介 Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java变量类型 Java修饰符 Java运算 ...

最新文章

  1. 高效整洁CSS代码原则
  2. bpmn js 生成json_你不知道的 tsconfig.json
  3. boost::type_erasure模块实现了支持多个签名的 Boost.Function 扩展
  4. python从oracle提取数据库_[python] python 和远程oracle 数据库连接,select提取文件 环境搭建过程...
  5. python手动安装包_python pip如何手动安装二进制包
  6. 【pytorch】torch.range() 和 torch.arange() ==>以step为间隔输出从start到end的张量列表
  7. python treeview显示多列_Python Gtk TreeView列数据显示
  8. 安装完补丁后是否需要服务器重新启动
  9. 浅析vue2.0的diff算法
  10. 常用的linux文件权限
  11. 高中计算机竞赛教案,信息技术教学案例评比——选择排序的算法实现(金华第一中学)...
  12. 生产过程代码分析(二)--估计
  13. BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】
  14. ikm2022/IKM考试/ikm java
  15. html语言代码 输入文字,html语言教程文字代码:
  16. 贾俊平统计学思维导图- 第八章 假设检验
  17. ios android 视频格式,最佳iOS Android手机通用格式高清视频播放器: nPlayer-cue文件
  18. 计算机音乐谱成都.,抖音成都计算器谱子是什么 抖音成都计算器谱子分享
  19. 服务器装系统bios设置方法,重装系统时BIOS的设置方法
  20. 看大品牌如何玩转小程序

热门文章

  1. asp.net连接mysql数据库源码_ASP.net连接SQL数据库的源代码
  2. 光功率和光衰的单位_光模块发射光功率和接收灵敏度介绍
  3. React项目中如何结合antd引入阿里图标(外联方式)
  4. 关掉windows的系统声音
  5. 2020年PMP笔记归纳第五章项目管理范围
  6. 院士专家共议:生物信息学的下一个十年
  7. 软件设计师-12.软件系统分析与设计
  8. Redis Connector / UE4 DTRedis 插件说明
  9. Re:从0开始的小程序开发——毕设全过程记录
  10. 嵌入式软件开发经典面试题