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

二分查找-69.x的平方根-力扣(LeetCode)

一、题目解析

1.结果只保留整数部分,小数部分舍去

2.不允许使用任何内置指数函数和算符

二、算法原理

解法1:暴力解法

从1开始枚举出平方数,与x比较大小

解法2:二分算法

二段性

 根据举例可以发现,要找的平方根,它的平方数是小于或等于x的,因此我们可以划分出两段区间,由此可以使用二分算法解决问题

 这里mid的计算是防止int的溢出

细节问题

1.由于x范围属于[0,2^31-1],对于x<1的情况单独处理,因为x<1,所以x的平方根同样<1,由于小数部分要被舍弃,所以结果为0

2.这里的mid*mid会超出int存储大小,所以可以用long long

三、代码示例

解法2:

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

 

 

看到最后,如果对您有所帮助,还请点赞、关注和收藏,我们下期再见!

 

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

相关文章:

  • 安装单机版本Redis
  • 电商商品综合排序:从需求分析到实时计算的全方位指南
  • 初识Redis---Redis的特性介绍
  • GM-3568JHF vs 普通 RK3568 开发板 — 工业应用对比文案
  • 学习 Python 爬虫需要哪些基础知识?
  • 3516cv610 npu 开发典型功能点的介绍
  • Azure Bicep 是什么?
  • leetcode_121 买卖股票的最佳时期
  • AWS Partner: Accreditation (Technical)
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 57(题目+回答)
  • QT动态加载动态库 QLibrary
  • 从车险理赔到快递签收:打通区块链与现实世界的“最后一公里”——解密预言机(Oracle)
  • aws(学习笔记第四十九课) ECS集中练习(1)
  • 基于深度学习的推荐系统:从协同过滤到神经网络
  • Java机考题:815. 公交路线 图论BFS
  • OpenCV 官翻7 - 对象检测
  • 用户中心——比如:腾讯的QQ账号可以登录到很多应用当中 02
  • Vue 3 中导出 Excel 文件
  • github上传代码
  • window、DOM、document、html 他们之间的关系是什么?
  • springboot基础-demo
  • Java中缓存的使用浅讲
  • Netty集群方案详解与实战(Zookeeper + Redis + RabbitMQ)
  • 深入理解设计模式:策略模式的艺术与实践
  • 云端成本治理利器:亚马逊云科技智能仪表盘(AWS Cost Intelligence Dashboard)深度解析
  • Android14 SystemUI 启动流程(2)
  • Spring MVC @RequestParam注解全解析
  • Spring MVC源码分析 DispatcherServlet#getHandlerAdapter方法
  • C# 中的强大运算符
  • 掌握配置文件(一):精通`properties`与`yml`的语法及选择