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

java练习(11)

ps:题目来自力扣

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

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

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

class Solution {
    public int mySqrt(int x) {
        // 处理 x 为 0 的特殊情况,0 的算术平方根是 0
        if (x == 0) {
            return 0;
        }
        // 初始化左右边界,左边界为 1,右边界为 x
        int left = 1;
        int right = x;
        int result = 0;

        // 二分查找
        while (left <= right) {
            // 计算中间值
            int mid = left + (right - left) / 2;
            // 避免 mid * mid 可能导致的整数溢出,改用 x / mid 来比较
            if (mid <= x / mid) {
                // 如果 mid 的平方小于等于 x,更新结果为 mid,并将左边界右移
                result = mid;
                left = mid + 1;
            } else {
                // 如果 mid 的平方大于 x,将右边界左移
                right = mid - 1;
            }
        }

        return result;
    }
}


http://www.kler.cn/a/538247.html

相关文章:

  • VLLM历次会议(2024.1)
  • 支持多种网络数据库格式的自动化转换工具——VisualXML
  • flask实现用户名查重,重复的用户名阻止注册,以及如何优化
  • kubeadm构建k8s源码阅读环境
  • 关于知识蒸馏的概念原理以及常见方法
  • python连点器
  • JVM虚拟机以及跨平台原理
  • SwiftUI 学习 Toggle 遇到的问题
  • MarkupLM:用于视觉丰富文档理解的文本和标记语言预训练
  • 2024最新版Java面试题及答案,【来自于各大厂】
  • 【11天从零基础入门flask】第 6 章:模板优化
  • 个人职业发展——效率为王:AI赋能前端开发
  • C语言简单练习题
  • 我的年度写作计划
  • 机器学习中常用的数据预处理方法
  • 深入解析AI技术原理
  • docker环境下部署face-search开源人脸识别模型
  • 我使用deepseek高效学习-分析外文网站Cron定时执行任务
  • 【GeeRPC】Day3:服务注册(Service Register)
  • 开源机器人+具身智能 解决方案+AI
  • 51单片机之引脚图(详解)
  • Redis 集群原理、主从复制和哨兵模式的详细讲解
  • 什么是DDOS网络攻击?
  • Python教程:使用Matplotlib模块画柱状图、饼形图、直方图
  • 【C语言标准库函数】双曲函数:sinh(), cosh(), tanh()
  • 解决基于FastAPI Swagger UI的文档打不开的问题