leetcode-第69题-x 的平方根

二分查找法-LeetCode第69题:x 的平方根 二分查找法-LeetCode第69题:x 的平方根前言题目描述第一次分析 前言 ……还是一个学生,做题解只是个人记录,代码有不少错误或纰漏之处,还望多多包涵。 题目描述 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。 第一次分析 计算平方根,看似 阅读详情

博主并没有什么算法基础,所以写的不好,勿喷,抛砖引玉,欢迎交流,感谢。 

//实现 int sqrt(int x) 函数。 
// 计算并返回 x 的平方根,其中 x 是非负整数。
// 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
// 示例 1:
// 输入: 4
//输出: 2
// 示例 2:
// 输入: 8
//输出: 2
//说明: 8 的平方根是 2.82842..., 
//     由于返回类型是整数,小数部分将被舍去。
// Related Topics 数学 二分查找
// 👍 499 👎 0


package com.zqh.leetcode.editor.cn;

//Java:x 的平方根
public class P69Sqrtx {
    public static void main(String[] args) {
        Solution solution = new P69Sqrtx().new Solution();
        System.out.println(solution.mySqrt(2147395599));
//        System.out.println((1073697799+2147395599));
        // TO TEST
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public int mySqrt(int x) {
            if (1 == x) {
                return 1;
            }
            long lowerBound = 0;
            long upperBound = x;
            long current;
            long old = 0;
            long tmp;
            while (true) {
                //>> 1 除以2
                current = (lowerBound + upperBound) >> 1;
                tmp = current * current;
                if (old == current) {
                    return (int) current;
                }
                old = current;
                if (tmp > x) {
                    upperBound = current;
                    continue;
                }
                lowerBound = current;
            }
        }
    }
//leetcode submit region end(Prohibit modification and deletion)
}

 

LeetCode 第69题:x 的平方根 通过这次的算法探险,我们学会了如何计算一个数的平方根。这个“x的平方根”的问题虽然看似简单,却涉及到了许多有趣的细节。通过详细的讲解和示例,我们深入理解了二分查找和牛顿迭代法在平方根计算中的应用。希望这篇文章能帮你更好地理解这道题目,如果有任何问题,欢迎留言讨论。 阅读详情

相关推荐

Halcon手眼标定实战:从九点标定到机械臂精准抓取(附完整代码)

本文详细介绍了Halcon手眼标定技术在实际工业场景中的应用,重点讲解了九点标定法在机械臂精准抓取中的实现步骤和优化技巧。通过对比Eye-to-Hand和Eye-in-Hand两种模式的特点,提供完整的代码示例和误差分析,帮助工程师快速掌握标定技术,提升自动化系统的精度和稳定性。

weixin_29100927的博客 459

3的幂

给定一个整数,写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true 示例 2: 输入: 0 输出: false 示例 3: 输入: 9 输出: true 示例 4: 输入: 45 输出: false class Solution { public boolean isPowerOfThree(int n) { i...

lemon1999123的博客 488

DDS信号发生器设计避坑指南:从AD9834配置到巴特沃斯滤波实战

本文详细解析了基于AD9834芯片的DDS信号发生器设计中的关键技术要点与常见陷阱,涵盖时钟源选择、寄存器配置时序、巴特沃斯滤波器设计等核心内容。针对中高频段信号质量优化,提供了实用的解决方案和代码示例,帮助工程师规避设计误区,提升信号发生器的性能和稳定性。

2y3u4i5o6p的博客 781

LeetCode——69 x的平方根

问题描述: 实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 来源:力扣(LeetCode) 链接:https...

优快云的博客 767

uni踩坑笔记 - 离线打包调起微信分享后从微信返回APP时黑屏

apk能成功调起微信并进行分享操作,但分享完成后点击回到应用后应用出现黑屏的情况,并在约3-5秒后自动重启。

weixin_46737742的博客 5215

保姆级教程:用STM32单片机实现国标交流充电桩的CP信号检测(附完整代码)

本文详细介绍了基于STM32单片机实现国标交流充电桩CP信号检测的全流程,包括硬件设计、软件架构和充电控制实现。通过分压电路设计、ADC配置和状态机逻辑,确保充电过程的安全与可靠性,适用于新能源汽车充电桩开发。附完整代码和调试技巧,助力开发者快速掌握关键技术。

weixin_42641998的博客 251

3的幂(Java算法每日一题)

问: 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x 例: 输入:n = 27 输出:true 答: class Solution { public boolean isPowerOfThree(int n) { int s = n; while(s != 0 && s % 3 == 0) {

wanjialin的博客 635

WRF-CHEM 新手向实践(四):化学初始/边界场及namelist设置

这是这个系列的最后一节了,这些经验是自己作为一个半路出家的外行一步步摸索出来的,其中不免有很多理解不到位的地方,但也正是如此,我相信这是目前新手入门wrf-chem最友好的教程之一,希望能对大家有实质性的帮助。本节继续未完成的内容。在mozbc生成化学初始和边界条件之前,还需要先在wrfinput文件中开启化学部分。

qq_42335815的博客 4633

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。

bool isPowerOfThree(int n) { double a = 0; a = n; if (n == 1) { return true; } while (a != 1.0) { a /= 3.0; if (a == 1.0) { return true; } if (a < 1.0) { return false; } } return false; } int main() { int n; scanf_s("

kb1122333的博客 1594

解锁SPWM电压利用率:三次谐波注入幅值的黄金分割点

本文深入探讨了SPWM电压利用率的提升方法,重点介绍了三次谐波注入技术及其黄金分割点(1/6比例)。通过数学推导和工程实践,揭示了如何通过特定幅值的三次谐波注入将电压利用率从86.6%提升至115%,与SVPWM相当。文章还提供了实验室调试流程和DSP实现代码,帮助工程师优化逆变器设计。

weixin_30729609的博客 915

Zephyr RTOS线程间通讯实战:消息队列与信号量的5个经典应用场景

本文深入探讨了Zephyr RTOS中线程间通讯的核心机制,通过消息队列与信号量的组合,详细解析了传感器数据处理流水线、命令分发系统、日志记录、资源池管理以及周期性任务协同调度等5个经典应用场景。这些实战模式为构建高效、稳定且可维护的嵌入式多线程系统提供了清晰的设计蓝图和代码范例。

tomato的博客 94

力扣简单题系列:x 的平方根(LeetCode 69)

力扣第69题 x的平方根

weixin_53910667的博客 1846

LoRa双端通信稳定性核心:同步字配置与LLCC68工程实践

LoRa是一种基于扩频调制的远距离低功耗无线通信技术,其物理层鲁棒性依赖于发射端与接收端在频率、带宽、扩频因子及同步字等关键参数上的严格一致。同步字作为LoRa帧结构中位于前导码之后的2字节标识字段,承担着物理层帧过滤与网络隔离的核心作用,直接影响通信成功率与抗干扰能力。在实际嵌入式开发中,尤其采用LLCC68等专用射频芯片时,同步字配置错误或双端不一致是导致‘能发不能收’‘间歇性丢包’等典型问题的首要原因。本文面向STM32等Cortex-M平台开发者,结合硬件一致性约束、驱动移植方法论与寄存器级调试手段

weixin_36019375的博客 130

LeetCode第69题_x的平方根

给你一个非负整数x,计算并返回x的。由于返回类型是整数,结果只保留,小数部分将被。**注意:**不允许使用任何内置指数函数和算符,例如或者x ** 0.5。

qq_40263592的博客 2024

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

力扣刷题69.x的平方根

代码的思想就是利用二分法不断进行去找,要注意的是判断 mid*mid<x时 要注意是要让 left 往右移动。在之前的文章中详细分析过二分查找跳出循环后left right 的各种情况。最后left位置是大于所找元素的第一个位置 所以-1。上述所说的整数溢出的测试用例 2147395599。该题利用这点 同样可实现查找x的平方根。

RegretM的博客 3596

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

算法第三天力扣第69题:X的平方根

解题思路:根据题意定义左右端点的值,找中间值mid为left+(right-left)/2,而且类型必须是long long型,原因是0

m0_75068978的博客 1012

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LeetCode第 69 题:x的平方根(C++)

69. x 的平方根 - 力扣(LeetCode) 简单题。 二分法 class Solution { public: int bsearch(int x, int low, int high){ return -1; } int mySqrt(int x) { if(x == 1 || x == 0) return x; int low = 0; int high = x; long

zj 431

精选力扣500题 第31题 LeetCode 69. x 的平方根【c++ / java 详细题解】

目录1、题目2、思路3、c++代码4、java代码 1、题目 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 2、思路 (二分) O(logx)O(logx)O(logx) 我们二分出最大的 y2<=xy^2 <=

林深不见鹿 的博客 4571

【LeetCode】第69题——x的平方根(难度:简单)

【LeetCode】第69题——x的平方根(难度简单)题目描述解题思路代码详解注意点 题目描述 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sqrtx 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 示例1 输入: 4 输出: 2 示例2 输入: 8 输出: 2

Se7en_Dayz的博客 425

力扣69题 x的平方根 二分查找法(简单易懂)

一种人一种写法 建议大家用自己的二分做来题 不要一味去模仿他人的二分 加油!

xiaoye7288的博客 519

LeetCode高频题69. x 的平方根,二分法搞定,非常简单

1)开根号,保留int结果 2)二分法OK 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

weixin_46838716的博客 793

LeetCode刷题——69.x的平方根

LeetCode刷题——69.x的平方根

Maqiuqiu520的博客 378

LeetCode刷题笔记第69题:x的平方根

LeetCode刷题笔记第69题:x的平方根 想法: 要实现求一个数的平方根,可以先通过数学的方式转换为可解的方式,再进行计算,注意要保留整数部分,在最后返回时判断是否为为整数,并进行相对应的处理。 class Solution: def mySqrt(self, x: int) -> int: # x的平方根 # 如果x为0时,则其平方根为0 if x == 0: return 0 # 通过数学转换将求其

qq_29787929的博客 207

LeetCode第69题:x的平方根(简单)

第69题:x的平方根(简单) 题目:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 思路一:呃。。。这样做有点过分了2333 class Solution { public int mySqrt(int x) { int ans = (int)Math.sqrt(x...

new_whiter的博客 282

LeetCode刷题-69. x 的平方根

难度:简单⭐️⭐️⭐️。

快乐的小小程序猿 174
上一篇: leetcode-第67题-二进制求和
下一篇: leetcode-第9题-回文数
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值