当前位置: 首页 > news >正文

专题三_二分_x 的平方根

一:题目

解释:返回x的算数平方根,如果是小数,则舍去小数部分,返回整数即可!

二:算法

①:暴力

从1开始求平方,最后要么直接找到一个值的平方为x,要么发现x在两个相邻的数的平方之间

暴力的时间复杂度为O(N)

但是我们从暴力得知,最后返回的一定是left,因为双指针相遇返回left和right都可以,但是如果发现x是两个相邻的数的平方之间,则返回left,因为题目要求向下取整

②:二分

做过了上道题目,此题简直如鱼得水!

我们将数组划分为两个部分,左部分值的平方<=x,右部分值的平方>x,本质是因为数组有可能没有直接平方等于x的值,所以左部分是<=

其次我们的区间的范围直接从1~x开始即可,因为只要一个数是正整数,则其一定小于其的平方!

所以:

mid*mid <=x 则left=mid  //落入左部分

mid*mid >x 则right=mid-1 //落入右部分

很显然,我们的求中点的式子必须为:mid = left + (right - left + 1) / 2!

因为,我们说过mid不能落在原地踏步的指针上,此题left=mid,所以不能落在left上,所以我们选择该式子,当只有两个元素的时候,mid会落在right指针上

其次循环的条件必定是left<right,避免双指针相遇再次进入循环,导致原地踏步死循环!

三:代码

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;//long long 防溢出if (mid * mid <= x) left = mid;else right = mid - 1;}return left;}
};

解释:

1:循环条件,left<right

2:求中点式子,mid = left + (right - left + 1) / 2; 

3:返回的是left

4:x可能为0~1之间,所以一开始特判即可

http://www.dtcms.com/a/332779.html

相关文章:

  • JavaScript 解析 Modbus 响应数据的实现方法
  • 记录处理:Caused by: java.lang.UnsatisfiedLinkError
  • MARCONet++ 攻克中文文本图像超分难题
  • 疯狂星期四文案网第40天运营日记
  • Web 开发 15
  • Transformer实战(11)——从零开始构建GPT模型
  • required a bean of type ‘com.example.dao.StudentDao‘ that could not be found
  • (Arxiv-2025)Stand-In:一种轻量化、即插即用的身份控制方法用于视频生成
  • All Document Reader:一站式文档阅读解决方案
  • LT6911GXD,HD-DVI2.1/DP1.4a/Type-C 转 Dual-port MIPI/LVDS with Audio 带音频
  • 【C++】缺省参数
  • Vue3中的ref与reactive全面解析:如何正确选择响应式声明方式
  • 采购招标周期从2月缩至3周?8Manage招标系统实战案例分享
  • 社区物业HCommunity本地部署二开与使用
  • 我的学习认知、高效方法与知识积累笔记
  • JAVA 关键字
  • Redis 官方提供免费的 30 MB 云数据库
  • 【机器人】人形机器人“百机大战”:2025年产业革命的烽火与技术前沿
  • Linux线程——基于生产者消费者模型的线程同步互斥应用
  • Scikit-learn (sklearn) 库详细介绍
  • 体彩排列三第2025217期号码分析
  • 蓝牙AOA定位技术在医疗行业的创新应用与发展
  • Linux 系统中~网络配置
  • 项目篇------------网页五子棋(知识预备)
  • SVA断言一二
  • 第十六届蓝桥杯青少组C++省赛[2025.8.9]第二部分编程题(4、矩阵圈层交错旋转)
  • Docker 实战:情感分析系统-容器化部署全流程(sa-logic、sa-webapp、sa-frontend )
  • 48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径
  • 10.0 UML的介绍以及VisualStudio中查看类图
  • whisper 语种检测学习笔记