LeetCode力扣每日一题(Java):69、x 的平方根

一、题目

二、解题思路

1、 我的思路

我的思路是直接循环暴力破解,定义计数器i,从1开始递增,直到i*i大于或等于x

于是有了如下代码

int i = 1;while(true){if(i*i<x){i++;}else if(i*i==x){return i;}else{return i-1;}}

但提交之后超出了时间限制,看来需要改进代码质量

2、官方题解

方法一:袖珍计算器算法

class Solution {public int mySqrt(int x) {if (x == 0) {return 0;}int ans = (int) Math.exp(0.5 * Math.log(x));return (long) (ans + 1) * (ans + 1) <= x ? ans + 1 : ans;}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/sqrtx/
来源:力扣(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) mid * mid <= x) {ans = mid;l = mid + 1;} else {r = mid - 1;}}return ans;}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/sqrtx/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

方法三:牛顿迭代

class Solution {public int mySqrt(int x) {if (x == 0) {return 0;}double C = x, x0 = x;while (true) {double xi = 0.5 * (x0 + C / x0);if (Math.abs(x0 - xi) < 1e-7) {break;}x0 = xi;}return (int) x0;}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/sqrtx/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

3、一个小疑问

 哦对了,这是作者写的另一段代码,其实思路和上一段代码基本一样,但是在输入2147395599时却没有得到期望的结果,程序在第一次循环时就return了,输出结果是1073697799,明明i*i>x,为什么循环还是走了if,没走else呢?期待小伙伴们的解答

public class LeetCode69 {public static void main(String[] args) {System.out.println(mySqrt(2147395599));}public static int mySqrt(int x) {if(x==1){return 1;}int i = x/2;while(true){if(i*i<=x){return i;}else{i--;}}}
}

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

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

相关文章

亚马逊、target、eBay、沃尔玛等平台采退、下卡,技术技巧大揭秘

今天想和大家分享一些关于做测评、采退和撸卡项目时所需的防关联和防封号环境的底层技术原理。这些内容相对比较复杂&#xff0c;相信很少有人能够完全掌握&#xff0c;因为涉及到一些比较高级的IT技术原理。 如果正在考虑开始做采退或者撸卡项目&#xff0c;或者已经在进行相…

libxls - 编译

文章目录 libxls - 编译概述笔记静态库工程测试控制台exe工程测试备注备注END libxls - 编译 概述 想处理.xls格式的excel文件. 查了一下libxls库可以干这个事. 库地址 https://github.com/libxls/libxls.git 但是这个库的makefile写的有问题, 在mingw和WSL下都编译不了. 好在…

高德地图绘制区域的地理围栏

官网示例 https://lbs.amap.com/demo/javascript-api-v2/example/overlayers/polygon-draw/ <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta …

黑马点评06分布式锁 2Redisson

实战篇-17.分布式锁-Redisson功能介绍_哔哩哔哩_bilibili 1.还存在的问题 直接实现很麻烦&#xff0c;借鉴已有的框架。 2.Redisson用法 3.Redisson可重入原理 在获取锁的时候&#xff0c;看看申请的线程和拿锁的线程是否一致&#xff0c;然后计算该线程获取锁的次数。一个方法…

爬虫chrome浏览器抓包说明

chrome浏览器抓包说明 目标&#xff1a;掌握chrome在爬虫中的使用 1. 新建隐身窗口&#xff08;无痕窗口&#xff09; 作用&#xff1a;在打开无痕窗口的时候&#xff0c;第一次请求某个网站是没有携带cookie的&#xff0c;和代码请求一个网站一样&#xff0c;这样就能够尽可…

HashSet集合

目录 1、HashSet集合简介 2、什么情况下使用HashSet集合比使用ArrayList集合更好&#xff1f; 3、如果需要对集合进行频繁的插入和删除操作&#xff0c;应该使用什么集合&#xff1f; 4、遍历集合相关问题 5、遍历集合时的 null 元素处理问题 6、遍历集合时判断某个元素是…

JJJ:python学习笔记2

文章目录 双分支结构 p28多分支结构 p29嵌套if的使用 p30 多个条件的连接 p31Python3.11新特性-模式匹配 p32遍历循环for p33语法结构1&#xff1a;for语法结构2&#xff1a;for...else... 无限循环while p34while结构while...else...结构使用while循环模拟用户登录 p35嵌套循环…

堆与二叉树(上)

本篇主要讲的是一些概念&#xff0c;推论和堆的实现&#xff08;核心在堆的实现这一块&#xff09; 涉及到的一些结论&#xff0c;证明放到最后&#xff0c;可以选择跳过&#xff0c;知识点过多&#xff0c;当复习一用差不多&#xff0c;如果是刚学这一块的&#xff0c;建议打…

爬虫练习-获取imooc课程目录

代码&#xff1a; from bs4 import BeautifulSoup import requests headers{ User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0, }id371 #课程id htmlrequests.get(https://coding.imooc.com/class/chapter/id.html#Anchor,head…

办公桌行业分析:预计2026年中国市场规模将增长到1183亿元

办公桌&#xff0c;是指日常生活工作和社会活动中为工作方便而配备的桌子。办公桌的主要消费人群分为两大类&#xff1a;一是企业的购买;二是政府的采购。但是政府采购所占比重还不够大&#xff0c;在某些环节还不够规范。 良好的办公桌除了应该考虑放置信息产品的空间外&#…

vue中如何刷新子组件,重新加载子组件

三种方法&#xff1a;1.使用 Props 传递数据 2.使用$refs引用子组件 3.给子组件添加key值 1. 使用 Props 传递数据&#xff1a; 在父组件中通过修改 props 的值&#xff0c;传递新的数据给子组件&#xff0c;从而触发子组件的更新。在父组件中&#xff1a; <template>&…

Pandas 中级教程——数据清理与处理

Python Pandas 中级教程&#xff1a;数据清理与处理 Pandas 是一个强大的数据分析库&#xff0c;它提供了广泛的功能来处理、清理和分析数据。在实际数据分析项目中&#xff0c;数据清理是至关重要的一步。在这篇博客中&#xff0c;我们将深入介绍 Pandas 中的一些中级数据清理…

实验三 MapReduce编程

实验目的&#xff1a; 1.掌握MapReduce的基本编程流程&#xff1b; 2.掌握MapReduce序列化的使用&#xff1b; 实验内容&#xff1a; 一、在本地创建名为MapReduceTest的Maven工程&#xff0c;在pom.xml中引入相关依赖包&#xff0c;配置log4j.properties文件&#xff0c;搭…

软信天成:产品信息管理(PIM)对零售行业有何意义?

产品信息管理&#xff08;PIM&#xff09;&#xff0c;通过快速收集、管理和共享横跨整个企业、合作伙伴和供应商的产品信息&#xff0c;整合分散在不同系统或部门的数据信息&#xff0c;创建实时、可信的产品数据源&#xff0c;及时获取整个企业详细、准确和一致的产品信息&am…

前端做表格导出

下面来介绍一下方法 在vue页面里写调用方法 //表头数据格式 column: [{ key: Photo, width: 70, height: 50, colWidth: 100, title: 图片, type: image },{ key: Name, colWidth: , title: 名称, type: text },{ key: Phone, colWidth: , title: 手机号, type: text },{key:…

使用Log4j与log4j2配置mybatisplus打印sql日志

环境&#xff1a;项目非完全spring项目&#xff0c;没有spring的配置文件。执行sql时老是不打印sql语句。因此进行修改&#xff0c;过程比较坎坷&#xff0c;记录一下。 我尝试使用log4j和log4j2进行配置 最终把这两种全部配置记录上 Log4j配置 如果项目用的是log4j需要进行配置…

【✅如何针对大Excel做文件读取?】

✅如何针对大Excel做文件读取&#xff1f; &#x1f7e9;如何针对大Excel做文件读取&#x1f7e9;XSSFWorkbook文件读取&#x1f7e9;EasyExcel文件读取 ✅扩展知识&#x1f7e9; EasyExcel简介&#x1f7e9;EasyExcel 为什么内存占用小&#xff1f; &#x1f7e9;如何针对大Ex…

搜维尔科技:台湾东森新闻来京专访,我司展示Xsesn动作捕捉技术

搜维尔科技&#xff1a;台湾东森新闻来京专访&#xff0c;我司展示Xsesn动作捕捉技术 搜维尔科技&#xff1a;电视台采访科技公司&#xff0c;我司展示xsens动作捕捉技术&#xff01;

欧盟健身单车出口BS EN ISO 20957安全报告测试

固定的训练器材.第10部分:带固定轮或无自由飞轮的训练自行车.附加特定安全要求和试验方法 作为欧洲固定式健身器材&#xff08;儿童用固定式健身器材不在此范围&#xff09;通用安全要求和测试方法的标准&#xff0c;涉及固定式健身器材精度、使用场所分类定义、稳定性、安全间…

Amazon CodeWhisperer 体验

文章作者&#xff1a;jiangbei 1. CodeWhisperer 安装 1.1 先安装 IDEA&#xff0c;如下图&#xff0c;IDEA2022 安装为例&#xff1a; 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者…