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

x的平方根-力扣

本题想到使用二分法不断逼近一个区间,直到最后趋近于x,从而求得解。注意的点,一开始使用

if(mid * mid <= x) 

进行判断时,会出现越界,原因是输入一个很大的数是,超过int表示的范围,继而修改为这种判断形式:

if( mid <= x/mid)
  • 需要注意的是,这种判断方式存在一定的精度问题

这种判断方式有需要确保 mid 的值不为 0,那么左区间就需要从1开始。
那么当输入 x 的值为0时,只需要不进入while循环,直接返回 ans初始值0即可。
如果使用力扣官方题解,mid 设置为 long long类型,则无须这样处理。

class Solution {
public:int mySqrt(int x) {int left = 1;int right = x;int ans = 0;while(left <= right){int mid = left + (right - left)/2;if( mid <= x/mid){left = mid + 1;ans = mid;}else if( mid > x/mid){right = mid - 1;}}return ans;}
};

相关文章:

  • [7] CUDA之常量内存与纹理内存
  • Java——图书管理系统万字详解(附代码)
  • 树莓派4B 有电但无法启动
  • 几种常用的配置文件格式对比分析——ini、json、xml、toml、yaml
  • 2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新
  • 26.synchronized和ReentrantLock的区别
  • 初步认识栈和队列
  • 网络安全等级保护:正确配置 Linux
  • 38、Flink 的窗口触发器(Triggers)详解
  • html5网页-浏览器中实现高德地图定位功能
  • 生产制造边角料核算说明及ODOO演示
  • Adobe Bridge BR v14.0.3 安装教程 (多媒体文件组织管理工具)
  • LabelMe下载及关键点检测数据标注
  • 【全开源】海报在线制作系统源码(ThinkPHP+FastAdmin+UniApp)
  • STM32手写超频到128M函数
  • @jsonView过滤属性
  • 【React系列】如何构建React应用程序
  • 2017 前端面试准备 - 收藏集 - 掘金
  • golang中接口赋值与方法集
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python学习之路13-记分
  • quasar-framework cnodejs社区
  • Spring框架之我见(三)——IOC、AOP
  • vue-router 实现分析
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 后端_ThinkPHP5
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 每天10道Java面试题,跟我走,offer有!
  • 前端性能优化--懒加载和预加载
  • 数据仓库的几种建模方法
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 以太坊客户端Geth命令参数详解
  • 用Visual Studio开发以太坊智能合约
  • FaaS 的简单实践
  • HanLP分词命名实体提取详解
  • 数据库巡检项
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (12)Linux 常见的三种进程状态
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (3) cmake编译多个cpp文件
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (顺序)容器的好伴侣 --- 容器适配器
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (源码分析)springsecurity认证授权
  • (转)Scala的“=”符号简介
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .bat批处理出现中文乱码的情况
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .gitignore文件_Git:.gitignore
  • .Net Core缓存组件(MemoryCache)源码解析