LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根
LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根
题目描述
实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例 1:
输入: 4
输出: 2
示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842...,
由于返回类型是整数,小数部分将被舍去。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sqrtx
解题思路
1.取右区间,保证left <= right 条件可以终结
2.Int类型计算sqare,上界的时候会溢出,需要转成Long来计算,但是Long的时候呢?
3.因为返回类型是整数,结果只保留整数的部分,小数部分将被舍去。所以,这里当 sqare <= x 的条件满足的时候,ans = mid,一直收敛到 left<=right 条件边界.
代码
class Solution {fun mySqrt(x: Int): Int {var left = 0var right = xvar ans = -1while(left<=right){// 取右区间,保证left <= right 条件可以终结val mid = left + (right - left)/2// Int类型计算sqare,上界的时候会溢出,需要转成Long来计算,但是Long的时候呢?val sqare: Long = mid.toLong() * mid.toLong()// 因为返回类型是整数,结果只保留整数的部分,小数部分将被舍去。所以,这里当 sqare <= x 的条件满足的时候,ans = mid,一直收敛到 left<=right 条件边界.if(sqare<=x){ans = midleft = mid + 1}else{right = mid - 1}}return ans}
}
Kotlin开发者社区
专注分享 Java、 Kotlin、Spring/Spring Boot、MySQL、redis、neo4j、NoSQL、Android、JavaScript、React、Node、函数式编程、编程思想、"高可用,高性能,高实时"大型分布式系统架构设计主题。
http://www.taodudu.cc/news/show-6495422.html
相关文章:
- 输入二次函数系数求平方根
- 平方根(sqrt)算法
- 简单题-不用库函数,求解一个数字的平方根
- 使用库函数sqrt求平方根 C语言入门
- 【leetcode】第69题 x 的平方根 牛顿迭代法实现求平方根函数 C++
- Docker的镜像和容器的区别
- 什么是镜像?阿里云服务器镜像是什么?镜像怎么选?
- 什么是Docker镜像?
- 云服务器镜像是什么?
- Docker入门笔记(七)——镜像
- 未能成功加载扩展程序
- C# 未能找到路径 “D:\...”的一部分
- 虚拟机vmwareWokstation未能启动虚拟机
- 【vs】未能完成操作。拒绝访问。
- VS编译出错:未能找到类型,未能加载基类
- c#未能加载基类System
- 修复Visual Studio 2022 提示未能写入输出文件“*”,未能找到路径“*”的一部分错误
- 虚拟机未能初始化监视器设备
- 仍未解决。
- CORS请求未能成功
- Ubuntu的:有未能满足的依赖关系
- UE4遇到了 “warning MSB3245: 未能解析此引用。未能找到程序集“Windows”。
- 未能找到元数据文件
- 反证法的应用
- 反证法的逻辑
- 反证法逻辑原理学习记录
- 数理逻辑分析反证法
- html5反证,如何理解反证法?
- 证明技巧I——反证法
- 小概率反证法
LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根相关推荐
- 二分查找法-floor和ceil函数实现(C++)
描述 有时候我们用二分查找法找的不是一个元素而是一段区域.这时候我们就可以设计floor(地板)和ceil(天花板)函数,找到相应区域的起始位置和结束位置. 注意 当我们要找的元素target不在序列 ...
- LeetCode 69: Sqrt(x) 求根号x(牛顿迭代法和二分查找法)
题目: Implement int sqrt(int x). Compute and return the square root of x. 分析:我们平常可能好少会自己去求解某个数的平方根,一般都 ...
- javascript数据结构与算法---检索算法(二分查找法、计算重复次数)
javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...
- 学习练习 java 二分查找法
1 package com.hanqi; 2 3 import java.util.*; 4 5 public class Test5 { 6 7 public static void main(St ...
- Python 关于下标的运用技巧(二分查找法,冒泡、选择、插入、归并、快速排序算法)
二分查找法(折半查找法)的递归实现 二分查找法(折半查找法):用于预排序列表的查找问题, 再次强调,二分查找法要配合排序使用,只有排好序,才能使用二分查找法 而且,待查找列表如果有重复值,只能查找到其 ...
- 二分查找法。Java泛型设计二分查找法。
前言基础: 1.只能针对有序的数组进行查找. 2.时间复杂度为O(logn). 3.使用前可以先排序,然后再查找,广泛应用于当一大组数据需要频繁查找,于是我们先将其进行排序,然后再通过二分查找进行查找 ...
- 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)
LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...
- java二分查找法_java算法之二分查找法的实例详解
java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...
- java 二分查找_计算机入门必备算法——二分查找法
1.引言 笔者对于计算机的研究一直停滞不前,近期想对一些算法进行复习和进一步的研究,每天都会更新一个新的算法,算法有难有易,层层递进.不希望能学的有多么高深,只希望在一些最基本的算法上有编码的思路,或 ...
最新文章
- TorchFusion 是一个深度学习框架,主要用于 AI 系统加速研究和开发
- 列表逆向排列的几种实现形式
- miniGUI安装笔记(转)
- Leetcode 152.乘机最大子序列
- 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery )
- oracle中创建游标,oracle 存储过程创建游标
- Halcon 学习总结——基于动态阈值法、GMM(高斯混合模型)、SVM(支持向量机)的网状物缺陷检测
- minishell的实现
- 利用词袋模型和TF-IDF实现Large Movie Review Dataset文本分类
- 20191006每日一句
- html 磁贴自动布局,也来“玩”Metro UI之磁贴(一)_html/css_WEB-ITnose
- 清华大学交叉信息研究院弋力老师课题组招收科研实习生
- docker搭建 JRebel 验证服务器 和 IDEA 验证服务器
- css获取第n个元素之后所有的元素
- RAP2 API管理工具部署手册
- 中专毕业生计算机简历模板,中专生简历模板
- 解决Typecho站点Sitemap插件不可用问题
- 一个诡异的问题的解决20211008
- android app全局字体,Android app全局字体设置
- 中国矿业大学计算机考研复试科目,中国矿业大学考研复试参考书目
热门文章
- 把局域网中服务器的IP地址转换为自己访问的域名
- 吉他弹唱精通——4321进行
- 丰炜vb0和两台变频器的modbus rtu通信程序 史上最好用的plc modbus rtu通讯程序, 通讯效果如视频,控制,反馈无延迟
- 【拓扑 字符串还原 + 线段树维护】奇洛金卡达(father)
- 鸿钧老祖 数据结构笔记01:编程面试过程中常见的10大算法(java)
- 什么是「区块链技术」、区块链又是什么?
- thinkph5 新增命令/添加命令command
- WIN7下ADS使用详解
- opencv 实现孔洞填充的两个解决方案 MATLAB--imfill功能(收集)
- 计算机网络安全稳定性,计算机网络安全的现状及防范措施