继续刷LeetCode,第69题,求一个非负数的根号。

分析:
求根号的时候,自然是从1开始,平方是否等于所给数,不然就加一,继续求平方,这样其实是相当于从头到尾遍历查找有序表。刚刚开始写的代码就是这样,最后运行时间过长,虽然节省了一半的时间(只需要找到一半的位置即可)。为了缩减查找效率,可以采用类似二分查找的方式,快速找到。

问题:
1、抽象问题的方法,该题目可以抽象为查找问题;
2、二分查找的上下限设置。

附上第一次代码:

class Solution {
public:int mySqrt(int x) {int m=x/2;if(x==0)return 0;long i=1;for(;i<=m;i++){if(i*i<=x&&(i+1)*(i+1)>x)break;}return i;}
};

第二个代码(采用类似二分查找):

class Solution {
public:int mySqrt(int x) {int m=x/2;if(x<2)return x;long low=0;long mid,high=x;while(low<high){mid=(high+low)/2;if(x/mid==mid)return mid;else if(x/mid>mid)low=mid+1;elsehigh=mid;}return high-1;}
};

LeetCode探索之旅(17)-69求根号相关推荐

  1. LeetCode探索之旅(58)-204质素统计

    今天继续刷LeetCode,第204题,求给定的数以下,包含多少个素数. 分析: 素数的定义:一个大于1的自然数,除了1和它自身以外,不能被其他自然数整除的数就是质数,也叫作素数.所以1不是质数. 方 ...

  2. Linux 探索之旅 | 第三部分第五课:延时执行,唯慢不破

    -- 作者 谢恩铭 转载请注明出处 内容简介 第三部分第五课:延时执行,唯慢不破 第三部分第六课预告:第三部分测验题 延时执行,唯慢不破 上一课 Linux探索之旅 | 第三部分第四课:后台运行及合并 ...

  3. Android探索之旅 | 面向对象和Java基础

    -- 作者 谢恩铭 转载请注明出处 上一篇 Android探索之旅 | Android简介 中说到: "Android的默认开发语言是Java,入门简单.而且,你的Java水平不需要多好就可 ...

  4. 【C++探索之旅】第二部分第一课:面向对象初探,string的惊天内幕

    内容简介 1.第二部分第一课:面向对象初探,string的惊天内幕 2.第二部分第二课预告:掀起了"类"的盖头来(一) 面向对象初探,string的惊天内幕 上一课<[C++ ...

  5. C语言探索之旅 | 第一部分第三课:你的第一个程序

    作者 谢恩铭,公众号「程序员联盟」. 转载请注明出处. 原文:https://www.jianshu.com/p/c73fecacd006 <C语言探索之旅>全系列 内容简介 前言 控制台 ...

  6. 【C++探索之旅】第一部分第六课:控制流程,随心所至

    内容简介 1.第一部分第六课:控制流程,随心所至 2.第一部分第七课预告:函数效应,分而治之 控制流程,随心所至 上一课<[C++探索之旅]第一部分第五课:简易计算器>比较简单,这一课也不 ...

  7. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 1.第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的 ...

  8. 面试题:如何求根号2

    来源:算法面试题 问题 小E最近找实习的时候,被面试官问了这样一道题:如何求根号2的值? 小E没能答上来,回来后向老师请教. 思路 点评:以上介绍了二分法和牛顿迭代法来求解根号2,另外我们还可以通过泰 ...

  9. Web 探索之旅 | 第二部分第一课:客户端语言

    -- 作者 谢恩铭 转载请注明出处 Web探索之旅 | 第二部分 第二部分第一课:客户端语言 第二部分第二课:服务器语言 第二部分第三课:框架和内容管理系统 第二部分第四课:数据库 第二部分第五课:响 ...

  10. 美团外卖商家端视频探索之旅

    美团外卖商家端视频探索之旅 背景 美团外卖至今已迅猛发展了六年,随着外卖业务量级与日俱增,单一的文字和图片已无法满足商家的需求,商家迫切需要更丰富的商品描述手段吸引用户,增加流量,进而提高下单转化率和 ...

最新文章

  1. tomcat结构分析
  2. html css integrity,integrity 属性
  3. Linux 主机被入侵后的处理案例
  4. 搜狐视频Redis私有云cachecloud开源了
  5. armv7的linux系统,CentOS 7(1611) for ARM(armhfp)发布
  6. 7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程)
  7. 【转】使用Feature导入WebPart
  8. android 添加so,Android studio 中添加 .so 文件
  9. HAProxy负载均衡原理及企业级实例部署haproxy集群
  10. java was datasource_mybatis默认的数据源连接池(PooledDataSource和UnPooledDataSource)
  11. bfc是什么_清除浮动和 BFC
  12. HDU 6096 树套树
  13. Spring 常见注解原理和自定义@interface注解
  14. 如何用计算机做函数,office2010中如何利用公式或函数进行计算
  15. 两个无线路由器的连接(修订)
  16. 小米9es更新MIUI 11.0.3.0稳定版本,解决耗电问题
  17. Windows日常效率生产力开发环境工具个人集合
  18. 求解单位冲激响应的笔记
  19. 英语中表示同意或肯定的词
  20. [ACNOI2021]爱乐之城

热门文章

  1. 5.14 创建基于图层的切片并输出网页 [原创Ps教程]
  2. 卡方检验以及P值的计算
  3. C语言删除注册表某个键值,怎么批量快速删除注册表中指定的某个键值
  4. C语言 #define ABS(X) (X >= 0) ? X : -X 遇到的逻辑错误
  5. 在 Linux 中如何删除分区
  6. Laravel文档梳理3、CSRF保护
  7. 【iOS篇】在iPhone上安装描述文件
  8. OpenDaylight VTN 项目指南
  9. MLP-Mixer详解
  10. try固定搭配_regret cease try等词的固定搭配用法