大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说根号69化简_2.56的平方根等于多少,希望您对编程的造诣更进一步.
704. 二分查找
Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
题目描述
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 具体题目链接: 题目链接
示例 1:
输入: x = 4
输出: 2
思路:
1.思路:二分题目的思路:
确定二分边界(重点!!)
编写二分的代码框架(2个模版之一)
设计一个check(性质)
判断一下区间如何更新
如果更新方式写的是l=mid,r=mid-1,那么就在算mid的时候加上1
- 这道题要求我们实现平方根函数,输入是一个非负整数,输出也是一个整数;
- 但是题目当中说:结果只保留整数的部分,小数部分将被舍去
- 平方以后一定不会严格大于 输入的整数x 也就是target。
mid > x/mid;
这部分区间要舍去- 我们要找的是mid平方以后
小于等于
xx 的最大正整数 a
,也就是mid ≤x/mid 才满足性质条件
细节:
边界条件0 和 1 除外,需要单独处理一下
代码:
var mySqrt = function(x) {
if(x==0)return 0;//判断初始的条件
if(x==1)return 1;
let left = 1;
let right = x;//左右端点的选择
while(left<right) {
let mid = left+ ((right-left)+1>>1);
if(mid <= x/mid) {
left = mid;
} else {
right = mid-1;
}
}
return left;
};
总结:
这是算法系类文章「二分专题」的相关题解
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13012.html