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

69.x的平方根

给你一个非负整数x,计算并返回x算术平方根

由于返回类型是整数,结果只保留整数部分,小数部分将被舍去 。

注意:不允许使用任何内置指数函数和算符,例如pow(x, 0.5)或者x ** 0.5

代码语法:1LL表示一个long long类型的整数1;

它的作用是:强制让后面的乘法按照 long long 来计算

如果写:

long long square=middle*middle;

虽然左边是long long,但是右边的middle*middle

可能会先用int计算,计算过程中就已经溢出了,然后再赋值给long long,已经晚了。

所以写:

1LL*middle*middle

可以保证整个乘法从一开始就是long long运算。

题目的本质,找到一个整数ans:

1.ans*ans<=x;

2.(ans+1)*(ans+1)>x;

所以我们可以在[0, x]这个范围里,用二分查找找到最大的num,使得:

num*num<=x;

然后分为三个条件判断,跟二分法一样

有一个要点是最后返回的是right,这个就是我们前面说的要满足最大的ans*ans<=x;

结束循环时候此时left>right

right停在最后一个满足right*right<=x


class Solution { public: int mySqrt(int x) { int left=0; int right=x; while(left<=right){ int middle=left+(right-left)/2; long long square=1LL * middle *middle; if(square==x) return middle; else if(square<x) left=middle+1; else right=middle-1; } return right; } };
http://www.jsqmd.com/news/974873/

相关文章:

  • 5个常见游戏串流痛点:Sunshine开源方案如何彻底解决?
  • 如何在CS2中实现跨平台游戏增强:Osiris完整指南
  • MIFARE Ultralight AES安全芯片:低成本应用的AES-128与CMAC实战指南
  • Motorola 8位MCU SDK:硬件抽象与静态配置的嵌入式开发实践
  • 抖音视频批量下载神器:douyin-downloader 让你的收藏永不丢失
  • 天龙八部GM工具终极指南:一键掌握游戏数据管理的完整解决方案
  • Steam创意工坊下载终极指南:三步搞定跨平台模组获取
  • 3步快速找回压缩包密码:ArchivePasswordTestTool终极指南
  • Steam创意工坊跨平台模组下载技术架构解析
  • 小学期学习报告-4
  • Web Components主题热切换方案揭秘
  • DSP56311嵌入式音频均衡器:从IIR滤波器设计到EFCOP硬件加速实现
  • Magnet2Torrent:磁力链接到种子文件的自动化转换技术解决方案
  • 从68HC908MR24到MR32的嵌入式MCU升级:硬件兼容与软件迁移实战
  • 如何快速下载网页视频和音频:猫抓Cat-Catch浏览器扩展完整指南
  • m4s-converter:5分钟解锁B站缓存视频,让你的离线收藏重获新生!
  • 4大实战模块深度解析:Win11Debloat如何实现Windows系统精简与性能优化
  • DSP56301 HI32 PCI主控与Scatter/Gather DMA技术详解
  • 谷歌ads搜索广告叫什么名字?英语渣也能自己投的5个实操步骤
  • 汽车5G模块电源设计实战:基于NXP FS56 PMIC的AG55xQ供电方案
  • 3步搞定微信聊天记录永久保存:WeChatExporter的实用备份方案
  • 怎么知道员工有没有认真工作?上网行为审计软件帮你实时查看工作动态,不再猜测
  • 涨薪技术|Docker容器操作常用命令
  • 工业级遗传算法实战:选择压力、自适应变异与精英保留
  • 别再乱开tcp_tw_recycle了!一次生产环境HTTP请求RST丢包排查实录(附sysctl配置详解)
  • 3分钟掌握窗口分辨率控制:SRWE让你轻松突破屏幕限制
  • 威海各区服务上门回收怎么选?黄金回收避坑实测,六大商家排名 - 余生黄金回收
  • AI工程师薪资揭秘
  • S32G QuadSPI Flash驱动配置实战:从时序匹配到性能调优
  • 南宁高新区鼎祥门窗:桂平镀铜门定制找哪家 - LYL仔仔