当前位置: 首页 > news >正文

x 的平方根

x 的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

作者:LeetCode
链接:https://leetcode.cn/leetbook/read/binary-search/xe9cog/
来源:力扣(LeetCode)

 

class Solution {
    public int mySqrt(int x) {
        int i = 1;
        int j = x;
        int ans = 0;
        while (i <=j){
            int mid = i + (j-i)/2;
            // upper bound的形式,因为我们要找的ans要是最接近于x的最大的数,利用upper bound
            if (mid <= x/mid){
                i = mid +1;
                ans = mid; // 只要mid <= x/mid,left左边界就会一直向右移动,ans就会一直更新(变大),直到不在满足mid <= x/mid的条件为止,ans就会停止更新,永远停在满足mid<=x/mid条件下面的最后一次更新,即满足ans * ans <= mid的最大值。
            }
            else
                j = mid-1;
        }
        
        return ans;
    }
}
class Solution {
    public int mySqrt(int x) {
        if(x < 2)
            return x;
        int left = 1, right = x;
        while(left <= right){
            int mid = (left + right) >>> 1;
            if(x / mid == mid)
                return mid;
            else if(x / mid < mid)
                right = mid - 1;
            else
                left = mid + 1;
        }
        return right;
    }
}

作者:Ebisu
链接:https://leetcode.cn/leetbook/read/binary-search/xe9cog/?discussion=oeKufZ
来源:力扣(LeetCode)
class Solution {
public:
    int mySqrt(int x) {
        int l = 0, r = x, ans = -1;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if ((long long)mid * mid >= x) {
                ans = mid; r = mid - 1;
                
            } else {
               l = mid + 1;
            }
        }
        return ans;
    }

相关文章:

  • Qt开发⑪Qt网络+Qt音视频_使用实操
  • HTTP超文本传输协议
  • 排序算法——快速排序
  • 探秘基带算法:从原理到5G时代的通信变革【一】引言
  • Unity 打包后EXE运行出现Field to Load il2cpp的一种情况
  • 《解锁HarmonyOS NEXT高阶玩法:艺术图像识别功能开发全攻略》
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)
  • 【JAVA面试题】== 和 equals() 的区别与使用场景
  • Aria Gen 2来了!AI感知、机器人、可穿戴计算的新突破
  • xenomai4的dovetail学习(5)——文件和网络
  • Windows下使用ShiftMediaProject方法编译FFmpeg
  • Google chrome拦截某些下载内容
  • Windows系统安装python2025最新安装包,包括环境配置,以及安装python编程软件PyCharm2024.3.3免费社区版本,详细全流程
  • QT——文件IO
  • Express + MongoDB 实现视频点播
  • Linux文档编辑相关命令详解
  • 初识神经网络的分类问题
  • GAN、Diffusion与美颜SDK:AI如何驱动人脸美型API进化?
  • OpenGL ES -> GLSurfaceView纹理贴图
  • 坐标变换介绍与机器人九点标定的原理
  • 公安部部署“昆仑2025”专项工作,严打环食药等领域突出犯罪
  • Meta正为AI眼镜开发人脸识别功能
  • 扶桑谈|素称清廉的石破茂被曝受贿,日本政坛或掀起倒阁浪潮
  • 习近平抵达莫斯科对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院发布情况说明
  • 一网红被指涉脱衣殴打霸凌事件,沈阳警方:刑拘1人,处罚5人