根号69化简_2.56的平方根等于多少

根号69化简_2.56的平方根等于多少704. 二分查找,二分题目的思路: 确定二分边界(重点!!) 编写二分的代码框架(2个模版之一) 设计一个check(性质)是否满足某性质 判断一下区间如何更新

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

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注