leetcode刷题日记:69.sqrt(x)

news2024/11/27 3:58:07

给出一个非负的整数x,返回x的平方根向下取整的结果,这个被返回的数也应该是一个非负的值。
对我们的要求是不能使用任何内置的指数函数与操作,官方还给了我们例子:
在C++种不能使用pow(x, 0.5) 在python不能使用 x**0.5
既然官方已经这样要求了,那么我们就不使用这些操作了.
我最先的思路是这样的从0开始进行枚举,00与x进行比较,如果00小于x,就向后比较11与x的关系,当依次增大直到不符合条件,因为我们设置的是mm<x 则继续进行比较,但是现在mm>=x,所以我们还需要进行判断mm是大于x还是等于x,当大于x时,说明m-1是答案,当等于x时说明m是答案。

int mySqrt(int x){
    int i = 0;
    for(;i<=x/2;i++){
        if(i*i>=x){
            break;
        }
    }
    if(i*i==x){
        return i;
    }
    return i-1;
}

但是这一种方式太过于耗费时间了,因为它从0开始进行枚举,这样就太过多了其实如果能建立二叉树就能以O(logn)的时间复杂度进行平方根的查找。我们这一次不用二叉树进行查找,我是用两个变量记录查询的上下界,这样不断的进行将查询区间进行二分,最终也能实现O(logn)时间复杂度。这一个问题其实是一个二分查找的问题。

int sqrt(int x){
    int left = 0;
    int right = x;
    int middle = (left+right)/2;
    while(left<right){
        if(middle*middle<x){
            left = middle+1;
        }else if(middle*middle>x){
            right = middle - 1;
        }else{
            return middle;  // 如果是整数之一,就会直接返回,而不会跳出循环,如果跳出循环,说明只有一个近似的根,无整数平方根
        }
        middle = (right + left)/2; 
    }
    return right; // 从循环跳出这一种情况,数x的平方根取整后一定是right,这一个可以自行验证
}

运行结果截图:
在这里插入图片描述

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

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

相关文章

【漏洞复现】weblogic-SSRF漏洞

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 文章目录 漏洞测试注入HTTP头&#xff0c;利用Redis反弹shell 问题解决 Path : vulhub/weblogic/ssrf 编译及启动测试环境 docker compose up -dWeblogic中存在一个SSRF漏洞&#xff0…

嵌入式系统中的FPGA

举个栗子 假设你有一台智能家居系统&#xff0c;其中的FPGA可以被类比为智能家居中的中央控制器。 智能家居系统&#xff1a; 定制家居逻辑&#xff1a; 你希望智能家居系统能够根据你的生活习惯、时间表和喜好自动控制灯光、温度、窗帘等设备。就像FPGA中可以根据需求重新配置…

Java面向对象(进阶)-- super关键字的使用与子类对象实例化全过程

文章目录 一、super关键字的使用&#xff08;1&#xff09;为什么需要super&#xff1f;&#xff08;2&#xff09;super的理解&#xff08;3&#xff09;super可以调用的结构1、super调用方法举例1举例2举例3小结 2、super调用属性举例1举例2举例3小结 3、super调用构造器引入…

解决gtihub访问不到的

解决gtihub访问不到的 小编一开始也是找不到git但是通过查询资料&#xff0c;最终也是找到了解决方式 据说git的ip地址通常会变化的&#xff0c;可以通过地址查询网站查询到git当前的ip https://sites.ipaddress.com/github.com/在输入框中github.com&#xff0c;然后搜索 在…

【大数据】常见的数据抽取方法

常见的数据抽取方法 1.基于查询式的数据抽取1.1 触发器方式&#xff08;又称快照式&#xff09;1.2 增量字段方式1.3 时间戳方式1.4 全表删除插入方式 2.基于日志的数据抽取 数据抽取 是指从源数据源系统抽取需要的数据。实际应用中&#xff0c;数据源较多采用的是关系数据库。…

【计算机网络笔记】传输层——拥塞控制原理与解决方法

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

爬虫项目-爬取股吧(东方财富)评论

1.最近帮别人爬取了东方财富股吧的帖子和评论&#xff0c;网址如下&#xff1a;http://mguba.eastmoney.com/mguba/list/zssh000300 2.爬取字段如下所示&#xff1a; 3.爬虫的大致思路如下&#xff1a;客户要求爬取评论数大于5的帖子&#xff0c;首先获取帖子链接&#xff0c…

淘宝预定商品收不到尾款通知 - 解决方案

问题 用户在使用淘宝购买预定商品后&#xff0c;待补尾款时&#xff0c;无法收到尾款通知&#xff0c;从而导致错过补齐尾款无法购买预定商品&#xff0c;下文介绍解决方案。 解决方案 进入淘宝后&#xff0c;购买预定商品时&#xff0c;在提交订单页面时&#xff0c;取消勾…

雨水收集设施模块收集和利用雨水成为解决城市供水矛盾的途径之一

雨水收集设施模块是一种高效、环保的雨水收集和利用系统&#xff0c;它通过收集和利用雨水来解决城市供水矛盾。 雨水收集设施模块主要由雨水收集器、储水池、过滤器和水泵等组成。当雨水流入雨水收集器时&#xff0c;经过过滤器的过滤&#xff0c;进入储水池中储存。当需要用…

算法模板之单调栈解密 | 图文详解

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;算法模板、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️单调栈讲解1.1 &#x1f514;单调栈的定义1.2 &#x1f514;如何维护一个单…

【错误解决方案】ModuleNotFoundError: No module named ‘selenium‘

1. 错误提示 ModuleNotFoundError: No module named selenium&#xff0c;这意味着你试图导入一个名为 selenium 的模块&#xff0c;但Python找不到这个模块 2. 解决方案 安装缺失的模块: 如果你确定模块名称正确但仍然收到这个错误&#xff0c;那么可能是你没有安装这个模块…

二维码智慧门牌管理系统升级:详细展示门牌信息,让你的生活更便捷

文章目录 前言一、旧问题的解决与升级特点二、满足信息平台要求 前言 随着科技的不断发展&#xff0c;我们的生活正日益智能化。其中&#xff0c;二维码智慧门牌管理系统成为了智能生活的一个重要组成部分。最近&#xff0c;这一系统经过新的升级&#xff0c;为我们的生活带来…

HTML5+CSS3实现小米商城(课程设计版)

前言 这个小米商城用到了htmlcssjs&#xff0c;内容是今年6月份的。 结构相对简单&#xff0c;比较容易理解。 如果想要纯htmlcss实现的小米商城&#xff0c;可以看我的这个作品 HTMLCSS实现小米商城 如果需要其他网页作品了&#xff0c;可以看主页其他作品。 HTMLCSS实现华为…

文档QA综述:关于多页文档,多模态,检索增强最新的进展

关于Document&#xff0c;Multimodal&#xff0c;RAG最新的进展 一&#xff1a;PDFTriage 一&#xff1a;PDFTriage 题目: PDFTriage: Question Answering over Long, Structured Documents 机构&#xff1a;斯坦福大学&#xff0c;Adobe Research 论文: https://arxiv.org/pd…

MAC苹果电脑系统清理垃圾软件CleanMyMac4.15

如今电脑成为大多数人工作的工具&#xff0c;使用得越久就越需要清理垃圾软件。系统垃圾、废纸娄垃圾、大型和旧文件这些通常都占用了我们的电脑几G的空间。 想要清除不必要的垃圾文件&#xff0c;可以使用mac卸载软件CleanMyMac X&#xff0c;这款清理垃圾软件可以智能扫描Ma…

探索Kosmos-2模型的神奇功能

Kosmos-2是一个多模态大语言模型&#xff0c;它可以理解和生成包含图像和文本的内容。它的特点是能够将文本中的指代表达式&#xff08;如“这个”、“那个”等&#xff09;与图像中的物体对应起来&#xff0c;实现局部理解和交互。如果你想使用Kosmos-2模型&#xff0c;你可以…

《人工智能算法图解》书籍推荐

书籍介绍 今天&#xff0c;人工智能在我们的生活中随处可见。它能推送我们喜欢的电视节目&#xff0c;帮助我们诊断疑难杂症&#xff0c;还能向我们推荐商品。因此&#xff0c;让我们掌握人工智能的核心算法&#xff0c;拥抱日新月异的智能世界吧。 与那些充斥着公式和术语的教…

超详细的wheel轮子下载和.whl安装

wheel安装 pip安装失败问题 基于Anaconda进行 pip install ,报如下 但基于此路径下安装.whl文件时候&#xff0c;会报如下 通过在可借鉴的博客上查找相关原因&#xff0c;发现原来是因为版本没有匹配的问题&#xff0c;基于此问题以及博客中的解决方案&#xff0c;进行亲测…

CDR2024免费版服装设计工具

cdr是CorelDRAW的简称&#xff0c;一款专注排版和矢量图形编辑的平面设计软件。这款软件的设计界面精微细致、简洁易懂。功能尤其强大&#xff0c;图标设计&#xff0c;印刷排版&#xff0c;服装设计等都可以胜任。还有多种模板使得设计相当的轻松&#xff0c;今天简单介绍一下…

ACTIVE_MQ学习

ActiveMq学习①___入门概述https://blog.csdn.net/qq_45905724/article/details/131796502 ActiveMq学习②__安装与控制台https://blog.csdn.net/qq_45905724/article/details/133893214 ActiveMq学习③___Java编码实现ActiveMQ通讯https://blog.csdn.net/qq_45905724/articl…