LeetCode探索之旅(17)-69求根号
继续刷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求根号相关推荐
- LeetCode探索之旅(58)-204质素统计
今天继续刷LeetCode,第204题,求给定的数以下,包含多少个素数. 分析: 素数的定义:一个大于1的自然数,除了1和它自身以外,不能被其他自然数整除的数就是质数,也叫作素数.所以1不是质数. 方 ...
- Linux 探索之旅 | 第三部分第五课:延时执行,唯慢不破
-- 作者 谢恩铭 转载请注明出处 内容简介 第三部分第五课:延时执行,唯慢不破 第三部分第六课预告:第三部分测验题 延时执行,唯慢不破 上一课 Linux探索之旅 | 第三部分第四课:后台运行及合并 ...
- Android探索之旅 | 面向对象和Java基础
-- 作者 谢恩铭 转载请注明出处 上一篇 Android探索之旅 | Android简介 中说到: "Android的默认开发语言是Java,入门简单.而且,你的Java水平不需要多好就可 ...
- 【C++探索之旅】第二部分第一课:面向对象初探,string的惊天内幕
内容简介 1.第二部分第一课:面向对象初探,string的惊天内幕 2.第二部分第二课预告:掀起了"类"的盖头来(一) 面向对象初探,string的惊天内幕 上一课<[C++ ...
- C语言探索之旅 | 第一部分第三课:你的第一个程序
作者 谢恩铭,公众号「程序员联盟」. 转载请注明出处. 原文:https://www.jianshu.com/p/c73fecacd006 <C语言探索之旅>全系列 内容简介 前言 控制台 ...
- 【C++探索之旅】第一部分第六课:控制流程,随心所至
内容简介 1.第一部分第六课:控制流程,随心所至 2.第一部分第七课预告:函数效应,分而治之 控制流程,随心所至 上一课<[C++探索之旅]第一部分第五课:简易计算器>比较简单,这一课也不 ...
- 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性
内容简单介绍 1.第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的 ...
- 面试题:如何求根号2
来源:算法面试题 问题 小E最近找实习的时候,被面试官问了这样一道题:如何求根号2的值? 小E没能答上来,回来后向老师请教. 思路 点评:以上介绍了二分法和牛顿迭代法来求解根号2,另外我们还可以通过泰 ...
- Web 探索之旅 | 第二部分第一课:客户端语言
-- 作者 谢恩铭 转载请注明出处 Web探索之旅 | 第二部分 第二部分第一课:客户端语言 第二部分第二课:服务器语言 第二部分第三课:框架和内容管理系统 第二部分第四课:数据库 第二部分第五课:响 ...
- 美团外卖商家端视频探索之旅
美团外卖商家端视频探索之旅 背景 美团外卖至今已迅猛发展了六年,随着外卖业务量级与日俱增,单一的文字和图片已无法满足商家的需求,商家迫切需要更丰富的商品描述手段吸引用户,增加流量,进而提高下单转化率和 ...
最新文章
- tomcat结构分析
- html css integrity,integrity 属性
- Linux 主机被入侵后的处理案例
- 搜狐视频Redis私有云cachecloud开源了
- armv7的linux系统,CentOS 7(1611) for ARM(armhfp)发布
- 7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程)
- 【转】使用Feature导入WebPart
- android 添加so,Android studio 中添加 .so 文件
- HAProxy负载均衡原理及企业级实例部署haproxy集群
- java was datasource_mybatis默认的数据源连接池(PooledDataSource和UnPooledDataSource)
- bfc是什么_清除浮动和 BFC
- HDU 6096 树套树
- Spring 常见注解原理和自定义@interface注解
- 如何用计算机做函数,office2010中如何利用公式或函数进行计算
- 两个无线路由器的连接(修订)
- 小米9es更新MIUI 11.0.3.0稳定版本,解决耗电问题
- Windows日常效率生产力开发环境工具个人集合
- 求解单位冲激响应的笔记
- 英语中表示同意或肯定的词
- [ACNOI2021]爱乐之城
热门文章
- 5.14 创建基于图层的切片并输出网页 [原创Ps教程]
- 卡方检验以及P值的计算
- C语言删除注册表某个键值,怎么批量快速删除注册表中指定的某个键值
- C语言 #define ABS(X) (X >= 0) ? X : -X 遇到的逻辑错误
- 在 Linux 中如何删除分区
- Laravel文档梳理3、CSRF保护
- 【iOS篇】在iPhone上安装描述文件
- OpenDaylight VTN 项目指南
- MLP-Mixer详解
- try固定搭配_regret cease try等词的固定搭配用法