LeetCode:69.x的平方根

嗨嗨嗨,二分又来了,淦它,

这个题官解是,C++函数法,二分,和牛顿迭代法(暂且搁置),

当然还有暴力(不必讨论,就从0开始一个一个试),

69. x 的平方根 - 力扣(LeetCode)

目录

题目:

思路: 

代码+注释:

每日表情包:


题目:

思路: 

设所求之数a,a对x,要满足 a^2 <= x  && (a + 1)^2 >x

我们可以根据这个找a条件去写一个二分查找,

if (mid <= x) //上述虽说看上去是两个条件但实际上可以看作一个条件,

代码+注释:

int mySqrt(int x) {int l = 0, r = x;while(l <= r){long long mid = l + ((r - l) >> 1);if(mid * mid <= x){l = mid + 1;}else{r = mid - 1;}}return r;
}
//根据while循环条件,及其内部的调整语句可知,r在l的紧左边,把r和l(所代表的整数)之间想象成一条线
//线的左边都是平方<=x的,线的右边都是平方>x的,设我们要的是a x >= a^2 && x <(a + 1)^2
//所以我们要的是左边的紧挨线的那个,r 或者 l - 1

又到了思考,为什么等于号不在else(R)那里而是在L那里,根据while循环条件和if判断条件可知,L的右边数的平方是>= x,情况不好判断了,因为我们要找的数一部分在L - 1 或者r,一部分在L里(L所代表的数字就像判断条件所说有些是> 有些是= 我们要等于而不要>)

每日表情包:

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

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

相关文章

02.12

STM32CubeMx 1.2. 3. 4. 5. 6. 7. 8. 9. 10.

王树森《RNN Transformer》系列公开课

本课程主要介绍NLP相关&#xff0c;包括RNN、LSTM、Attention、Transformer、BERT等模型&#xff0c;以及情感识别、文本生成、机器翻译等应用 ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频 (bilibili.com) &#xff08;一&#xff09;NLP基础 1、数据处理基础 数…

AES加密后的密码可以破解吗

AES&#xff08;高级加密标准&#xff09;是一种广泛使用的对称加密算法&#xff0c;设计用来抵御各种已知的攻击方法。AES使用固定块大小的加密块和密钥长度&#xff0c;通常是128、192或256位。它被认为是非常安全的&#xff0c;到目前为止&#xff0c;没有已知的可行方法能够…

创建你的第一个Vue项目(小白专享版本)

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

16 亚稳态原理和解决方案

1. 亚稳态原理 亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。在同步系统中&#xff0c;输入总是与时钟同步&#xff0c;因此寄存器的setup time和hold time是满足的&#xff0c;一般情况下是不会发生亚稳态情况的。在异步信号采集中&#xff0c;由于异步…

STM32 寄存器操作 GPIO 与中断

一、如何使用stm32寄存器点灯&#xff1f; 1.1 寄存器映射表 寄存器本质就是一个开关&#xff0c;当我们把芯片寄存器配置指定的状态时即可使用芯片的硬件能力。 寄存器映射表则是开关的地址说明。对于我们希望点亮 GPIO_B 的一个灯来说&#xff0c;需要关注以下的两个寄存器…

Latex排版遇到的常见问题及解决方法

这里写目录标题 1. 图片/ PDF 裁剪1.1 PPT 画图转PDF1.2 PPT裁剪 2. 表格内的文本换行问题2.1 表格跨行显示2.2 表格内文本换行&#xff0c;使用 ‘makecell’ 包 换行2.2 表格内文本添加 圆点 1. 图片/ PDF 裁剪 1.1 PPT 画图转PDF 1.2 PPT裁剪 将输出的PDF文件裁剪成合适尺…

小白水平理解面试经典题目LeetCode 71. Simplify Path【Stack类】

71. 简化路径 小白渣翻译 给定一个字符串 path &#xff0c;它是 Unix 风格文件系统中文件或目录的绝对路径&#xff08;以斜杠 ‘/’ 开头&#xff09;&#xff0c;将其转换为简化的规范路径。 在 Unix 风格的文件系统中&#xff0c;句点 ‘.’ 指的是当前目录&#xff0c;…

深度学习基础之《深度学习介绍》

一、深度学习与机器学习的区别 1、特征提取方面 机器学习&#xff1a;人工特征提取 分类算法 深度学习&#xff1a;没有人工特征提取&#xff0c;直接将特征值传进去 &#xff08;1&#xff09;机器学习的特征工程步骤是要靠手工完成的&#xff0c;而且需要大量领域专业知识…

CS50x 2024 - Lecture 4 - Memory

00:00:00 - Introduction 00:01:01 - Pixel Art 将从更低的层面来了解计算机的工作原理 00:06:57 - Hexadecimal 16进制 表示255 使用两个十六进制数字来表示单个字节 00:14:23 - Memory 00:21:43 - Pointers 指针实际上只是一个地址&#xff0c;某个变量的地址 指针通常…

Day4.

单链表 #include <head.h>typedef struct List{int value;struct List *pointe; }*list; list create_space() {list s(struct List *)malloc(sizeof(struct List)); //向堆区申请空间s->pointe NULL;//初始化s->value 0;return s; } list inserhead_list(lis…

【ES】--Elasticsearch的分词器详解

目录 一、前言二、分词器原理1、常用分词器2、ik分词器模式3、指定索引的某个字段进行分词测试3.1、采用ts_match_analyzer进行分词3.2、采用standard_analyzer进行分词三、如何调整分词器1、已存在的索引调整分词器2、特别的词语不能被拆开一、前言 最近项目需求,针对客户提…