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

【数学】Leetcode 69. x 的平方根【简单】

x 的平方根

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

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

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

示例 1:

输入:x = 4
输出:2

示例 2:

输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。

解题思路

使用牛顿迭代法通过逐步逼近来找到平方根。

  • 1、如果 x 小于 2,直接返回 x 本身。
  • 2、初始化 r 为 x。
  • 3、使用迭代公式更新 r:r = (r + x / r) / 2,直到 r * r 不大于 x。

Java实现

public class Sqrt {public int mySqrt(int x) {if (x < 2) {return x;}long r = x;while (r * r > x) {r = (r + x / r) / 2;}return (int) r;}// 测试用例public static void main(String[] args) {Sqrt solution = new Sqrt();System.out.println(solution.mySqrt(4));   // 期望输出: 2System.out.println(solution.mySqrt(8));   // 期望输出: 2System.out.println(solution.mySqrt(16));  // 期望输出: 4System.out.println(solution.mySqrt(1));   // 期望输出: 1}
}

时间空间复杂度

  • 时间复杂度:O(log x),收敛速度非常快。
  • 空间复杂度:O(1),只使用了常数级别的额外空间。

相关文章:

  • Linux源码阅读笔记04-实时调度类及SMP和NUMA
  • 跟《经济学人》学英文:2024年6月15日这期 The war for AI talent is heating up
  • AI与音乐:创新之光还是毁灭之剑?
  • 微型操作系统内核源码详解系列五(四):cm3下svc启动任务
  • 天马学航——智慧教务系统(移动端)开发日志三
  • 用友U9-UBF自定义报表-打印模板开发学习笔记
  • SpringBoot测试实践
  • Spark SQL 血缘解析方案
  • 【Apache Doris】周FAQ集锦:第 7 期
  • python,ipython 和 jupyter notebook 之间的关系
  • 什么是N卡和A卡?有什么区别?
  • Python设计模式 - 简单工厂模式
  • Linux驱动开发笔记(十一)tty子系统及其驱动
  • AMSR/ADEOS-II L1A Raw Observation Counts V003地球表面和大气微波辐射的详细观测数据
  • 计算机组成原理笔记-第1章 计算机系统概论
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【Amaple教程】5. 插件
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • bootstrap创建登录注册页面
  • classpath对获取配置文件的影响
  • Gradle 5.0 正式版发布
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 对象管理器(defineProperty)学习笔记
  • 工作中总结前端开发流程--vue项目
  • 前端性能优化--懒加载和预加载
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 通过npm或yarn自动生成vue组件
  • Semaphore
  • # SpringBoot 如何让指定的Bean先加载
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二十六)Java 数据结构
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)visual stdio 书签功能介绍
  • (转)关于多人操作数据的处理策略
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .bat批处理出现中文乱码的情况
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .Net Web窗口页属性
  • .NET下的多线程编程—1-线程机制概述
  • .Net中的集合
  • .net中我喜欢的两种验证码
  • @media screen 针对不同移动设备
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解