Leetcode刷题详解——x的平方根

news2025/1/20 17:06:23

1. 题目链接:69. x 的平方根

2. 题目描述:

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

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

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

示例 1:

输入:x = 4
输出:2

示例 2:

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

提示:

  • 0 <= x <= 231 - 1

3. 解法1(暴力枚举)

3.1 算法思路:

依次枚举[0,x]之间的所有数:

  • 如果i*i==x,直接返回i
  • 如果i*i>x,说明返回的结果是前一个数i-1

3.2 C++算法代码:

class Solution {
public:
    int mySqrt(int x) {
        //两个较大的数相乘可能会超出int的范围,为了防止溢出,使用long long类型
        long long i=0;
        for(i=0;i<=x;i++)
        {
            //如果两个数想乘正好等于x,直接返回i
            if(i*i==x) return i;
            //如果第一次出现两个数相乘大于x,返回前一个数
            if(i*i>x) return i-1;
        }
        return -1;
    }
};

4. 解法2(二分查找)

4.1 算法思路:

x的平方根的最终结果为index

index左右两次数据的特点:

  • [0,index]之间的元素,平方之后都是小于等于x
  • [index+1,x]之间的元素,平方之后都是大于x

请添加图片描述

4.2 C++算法代码:

class Solution {
public:
    int mySqrt(int x) {
        if(x<1) return 0;
        int left=1,right=x;
        while(left<right)
        {
            long long mid=left+(right-left+1)/2;
            if(mid*mid<=x) left=mid;
            else right=mid-1;
        }
        return left;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网站搬家的多种方法

网站搬家&#xff0c;把网站从一个服务器迁移到另一个服务器&#xff0c;涉及到网站文件和数据库的备份、上传、导入等操作&#xff0c;最重要的是备份网站&#xff0c;避免迁移出现问题无法恢复网站。 根据不同的情景和需求&#xff0c;网站搬家的方法有多种&#xff0c;下面…

什么是Docker CLI

Docker CLI&#xff08;命令行界面&#xff09;是一个工具&#xff0c;允许用户通过命令行或终端与Docker进行交互。Docker是一个开源平台&#xff0c;用于开发、运送和运行应用程序。Docker使用容器化技术来打包应用程序及其依赖项&#xff0c;以确保在不同环境中的一致性和隔…

Axure 9 使用 font awesome 字体发布原型

我使用的版本为Font awesome 6.1.1&#xff0c;安装后在axure中新增3个字体 如果直接发布&#xff0c;在没有安装Font awesome的电脑上无法正常显示字体图标&#xff0c;需要在发布前进行设置。 设置方法&#xff1a; 点击共享 点开设置 在字体设置页&#xff0c;填入图中所示…

golang小游戏:飞翔的小鸟

游戏开发总体思路 首先要选取一个合适的图形化界面进行开发。该项目选取的是 ebiten 一个用于创建2D游戏和图形应用程序的游戏引擎&#xff0c;提供了一些简单的GUI功能。 其次明确游戏设计思路。飞翔的小鸟共分为三个场景。 第一个场景就是游戏开始前的准备阶段&#xff0c…

微信小程序:点击按钮出现右侧弹窗

效果 代码 wxml <!-- 弹窗信息 --> <view class"popup-container" wx:if"{{showPopup}}"><view class"popup-content"><!-- 弹窗内容 --><text>这是一个右侧弹窗</text></view> </view> <…

【Spring】使用aop切面编程时要给那些类加注解

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理 Spring 中使用aop切面编程时要给那些类加注解 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一…

python 之运算符

文章目录 总的介绍代码例子 总的介绍 Python中有许多不同类型的运算符&#xff0c;它们用于执行各种操作&#xff0c;包括算术运算、比较、逻辑运算等。以下是Python中常用的运算符&#xff1a; 算术运算符&#xff1a; &#xff1a;加法&#xff0c;用于将两个数相加。-&…

PhpStorm快速注释与取消注释

ctrl / 单行注释 ctrl shift / 多行注释 重复以上操作&#xff0c;取消注释。

Slax Linux 获得增强的会话管理和启动参数选项

Slax Linux 的创建者和维护者托马斯-马特吉切克&#xff08;Tomas Matejicek&#xff09;在自己生日这天&#xff08;生日快乐&#xff01;&#xff09;发布了其小巧便携的 GNU/Linux 发行版的新版本&#xff0c;带来了各种增强功能和错误修复。 新发布的 Slax Linux 版本&…

优雅的使用String字符串处理各种类型转换

文章目录 &#x1f31f; 优雅的使用String字符串处理各种类型转换&#x1f34a; 基本类型转字符串&#x1f34a; 字符串转基本类型&#x1f34a; 字符串与字符数组的转换&#x1f34a; 字符串与字节数组的转换&#x1f34a; 其他类型转字符串&#x1f34a; 总结 &#x1f4d5;我…

AIGC实战——深度学习 (Deep Learning, DL)

AIGC实战——深度学习 0. 前言1. 深度学习基本概念1.1 基本定义1.2 非结构化数据 2. 深度神经网络2.1 神经网络2.2 学习高级特征 3. TensorFlow 和 Keras4. 多层感知器 (MLP)4.1 准备数据4.2 构建模型4.3 检查模型4.4 编译模型4.5 训练模型4.6 评估模型 小结系列链接 0. 前言 …

UE4 中可全局获取的变量(例如游戏实例、玩家控制器等) 详解

目录 0 引言1 全局对象&#xff08;全局变量&#xff09;1.1 游戏实例 GameInstance1.1.1 介绍1.1.2 使用 GameInstance 1.2 玩家控制器 PlayerController1.3 游戏世界类 UWorld &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;UE虚幻引擎专栏&…

Vue3.3指北(二)

Vue3.3指北 Vue31、组件基础1.1、全局组件1.2、局部组件1.3、组件的命名1.4、组件的数据存放1.5、组件标签化 2、父组件向子组件传递数据2.1、props2.2、动态props2.3、props传数组2.4、props传对象2.4.1、默认值和必传值 3、子组件向父组件传递数据4、父子组件互相访问4.1、父…

[SQL开发笔记]AND OR运算符复杂表达式开发实例

结合 AND & OR实例&#xff1a;通过圆括号使用and或or来组成复杂的表达式 目标数据库及表&#xff1a;使用 DRobot数据库&#xff0c;"T_Drobot" 表 假设我们需要查询"T_Drobot" 表&#xff0c;并从"T_Drobot"表中查询选取creator为 "…

腾讯云 AI 绘画:文生图、图生图、图审图 快速入门

腾讯云 AI 绘画是腾讯云推出的一款基于人工智能的图像生成和编辑产品&#xff0c;能够根据输入的图片或描述文本&#xff0c;智能生成与输入内容相关的图片&#xff0c;支持多样化的图片风格选择。 在本文中&#xff0c;我们将介绍如何使用腾讯云 AI 绘画的三项主要功能&#…

24装饰器

目录 1、一些案例导入&#xff1a;这个要求必须是&#xff0c;在发东西之前有那个登录验证 2、开始理装饰器的一些原理了 3、最后就是把代码再简洁一些了 1、一些案例导入&#xff1a;这个要求必须是&#xff0c;在发东西之前有那个登录验证 def fss():print(发说说) def ft…

Elasticsearch(十五)搜索---搜索匹配功能⑥--基于地理位置查询

一、前言 随着互联网的热门&#xff0c;越来越多的传统行业将全部或者部分业务转移到互联网上&#xff0c;其中不乏一些和地理位置强相关的行业。基于地理位置的搜索功能&#xff0c;大大提升了人们的生活和工作效率。例如&#xff0c;外出旅行时&#xff0c;只需要用手机打开…

cuda卸载

去查看你的电脑显卡对应的cuda版本&#xff0c;不然还是一整个用不到gpu的情况嘿嘿. 啊啊啊啊打开控制面板看一下&#xff0c;驱动不要乱卸载&#xff1a; 这些东西不能全部卸载了哦&#xff0c;只能卸载含有“CUDA”的那几个&#xff08;其实其他的可能也没有用 但是不懂的哇 …

基于MIMO+16QAM系统的VBLAST译码算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ........................................................................ for SNR_dBSNRS…

CentOS 7.9.2009 数据盘挂载

一、linux版本&#xff1a; lsb_release -a 二、操作步骤 2.1&#xff0c;查看磁盘挂载情况&#xff0c;确认sdb是需挂载的硬盘 ## 查看磁盘挂载情况&#xff0c;确认sdb是需挂载的硬盘 lsblk 2.2&#xff0c;对硬盘sdb进行分区 ## 对硬盘sdb进行分区 fdisk /dev/sdb# 命令…