一:题目

‘给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

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

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

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

输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。

二:上码

class Solution {public:int mySqrt(int a) {if(a == 0)return 0;int l = 1,r = a,mid,sqrt;while(l <= r){mid = l + (r - l)/2; //等价  (r+l)/2 sqrt = a/mid;//这里的意思是 x < a/x,我们本来是要求 x平方 < a,这里做了一下变形  if(sqrt == mid){return mid;    } else if(mid > sqrt){r = mid - 1;} else{l = mid + 1;}    } //这里返回的r是当我们输入的a不是完全平方数时候要返回的值,比如8 开完方后是2,我们求取的//右边界是最接近的结果 因为当上方的循环结束后,如果未能返回正确的结果,那么肯定是求取的//结果大于想要的结果,这样的话,那么再求一次其右边界,就是最接近结果 return r; }
};

69. Sqrt(x)010(二分法求解+详解注释)相关推荐

  1. PHP环境配置文件php.ini详解注释 --转贴

    来源:http://www.ampc8.com/thread-22217-1-1.html 现在大多数网站都是基于PHP程序的脚本了,其中php.ini是php的核心配置问,下面是它的详细讲解注释. ...

  2. matlab建模三要素,MATLAB建模与求解详解.ppt

    3.编写MATLAB程序为: f=[-72,-64]; A=[1,1;12,8;3,0]; b=[50;480;100]; lb=zeros(2,1); [x,fval]=linprog(f,A,b, ...

  3. Unity ShaderLab特效教程 适用于贴图、sprite和ugui的2d着色器实例 代码+详解注释 【将贴图转为马赛克效果】

    如果代码中有什么不清楚请查看以下基础知识 Shader基础知识 unity3d 中 七种坐标知识详解 一个将贴图转为马赛克效果的shader: 万恶的马赛克其实也是一种艺术风格,如果你在开发2d游戏不 ...

  4. Unity ShaderLab特效教程 适用于贴图、sprite和ugui的2d着色器实例 代码+详解注释 【锐化效果】

    如果代码中有什么不清楚请查看以下基础知识 Shader基础知识 unity3d 中 七种坐标知识详解 锐化效果 笑狗图 代码 Shader "Custom/BlurBox" {Pr ...

  5. Unity ShaderLab特效教程 适用于贴图、sprite和ugui的2d着色器实例 代码+详解注释 【2d流光边框效果】

    如果代码中有什么不清楚请查看以下基础知识 Shader基础知识 unity3d 中 七种坐标知识详解 2d流光边框效果 可以自定义边框的高和宽,流光尺寸和速度以及中心点 笑狗图: 代码 Shader ...

  6. Unity ShaderLab特效教程 适用于sprite和ugui的2d着色器实例 代码+详解注释 【波浪起伏的扭曲动画效果】

    如果代码中有什么不清楚请查看以下基础知识 Shader基础知识 unity3d 中 七种坐标知识详解 适用于sprite和ugui的波浪动画shader Shader "Custom/wav ...

  7. C语言二分法查找详解

    二分法查找,也称折半法,是一种在有序数组中查找特定元素的搜索算法. 以一个案例来分析,二分法查找的思路如下: (1)首先,确定数组的中间下标mid(这里不用管整不整除,只要比较中间就可以),将mid对 ...

  8. 【TensorFlow】理解tf.nn.conv2d方法 ( 附代码详解注释 )

    最近在研究学习TensorFlow,在做识别手写数字的demo时,遇到了tf.nn.conv2d这个方法,查阅了官网的API 发现讲得比较简略,还是没理解.google了一下,参考了网上一些朋友写得博 ...

  9. 【在线OJ模拟项目】03——模块代码详解+注释

    文章目录 图示 1.模块分解 2.模块调用 HTTP模块 oj_sever.cpp代码 试题模块 oj_model代码 编译运行模块 compile.hpp代码 工具模块 oj_view.hpp代码 ...

最新文章

  1. 尖峰 mysql 源码方向_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  2. ARouter 源码历险记 (一)
  3. 将服务器文件加载至hive表中,Hive入门到剖析(四)
  4. GIT — 使用回顾
  5. LeetCode 1488. 避免洪水泛滥(贪心+set二分查找)
  6. 不断迭代,严苛细节,最终性能如何满足? 基于ELK的大数据平台实践分享
  7. mysql存儲過程_Mysql存儲過程 | 學步園
  8. 无线网络虚拟服务器,无线虚拟局域网
  9. NLP学习—19.检索式对话系统中的rank评估指标、rank技术(Point-wise/Pair-wise/List-wise)以及RankNet、LambdaRank、LambdaMART
  10. 使用 HTML5 webSocket API实现即时通讯的功能
  11. linux的系统监视器图片_Linux中一个高效的资源监控器Bpytop
  12. Dev c++下载、安装、使用教程(文件、项目)
  13. Teamviewer 更改ID
  14. 如何对网络“黑灰产”实现精准打击?
  15. 利用requests模块进行数据爬取的基本操作
  16. 为什么说优秀的管理都是自下而上的?
  17. JeecgBoot 3.3.0 版本发布,基于代码生成器的企业级低代码平台
  18. head, tail, catI(linux) in powershell
  19. 技术角度解读《庆余年》,深度挖掘小说语料 -01
  20. python3代码编程规范(命名、空格、注释、代码布局、编程建议等)

热门文章

  1. java多线程同时运行_Java实现的两个线程同时运行案例
  2. Android studio 的快捷键 MAC 和Win版本
  3. Sql数据库批量清理日志
  4. 【ArcGIS微课1000例】0005:空间连接(Spatial Join)
  5. 剑指offer之反转链表
  6. 回溯算法之布罗夫卫队(最大团问题)
  7. Android之通过ActivityLifecycleCallbacks判断程序是否运行在后台
  8. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(三)使用初始魔法跟编程魔法世界打个招呼吧
  9. 一套完整的导视设计案例_色彩导视艺术:乌克兰基辅语言学校导视设计案例
  10. 鸿蒙os系统被推送,鸿蒙来了!华为大规模推送鸿蒙OS系统,造成网站一度瘫痪...