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

【每日刷题】x 的平方根

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

方法一:暴力

从0开始遍历,直到 ans*ans > x 为止,这时ans-1就是答案。需要注意可能会爆int,所以ans要开为long,最后再转换为int。

class Solution {public int mySqrt(int x) {long ans = 0;while(ans * ans <= x){ans++;}return (int)ans-1;}
}

方法二:二分

这道题很适合用二分来做,甚至题解就是标准的二分模板。

如果开方为整数,会从return mid语句返回。因为非整数是向下取整,所以结果返回l-1。

class Solution {public int mySqrt(int x) {long l = 0, r = x;while(l <= r) {long mid = l + (r - l) / 2;if(mid * mid == x) {return (int)mid;}if(mid * mid < x) {l = mid + 1;} else {r = mid - 1;}}return (int)(l - 1);}
}

当然这里也可以像官方题解一样,直接合并小于和等于,额外赋值ans=mid,无论开方是否为整数,最后都返回ans即可。

class Solution {public int mySqrt(int x) {int l = 0, r = x, ans = -1;while (l <= r) {int mid = l + (r - l) / 2;if ((long) mid * mid <= x) {ans = mid;l = mid + 1;} else {r = mid - 1;}}return ans;}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/sqrtx/solutions/238553/x-de-ping-fang-gen-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
http://www.lryc.cn/news/585149.html

相关文章:

  • 【mac】快捷键使用指南
  • docker0网卡没有ip一步解决
  • 创客匠人:探索 IP 变现时代知识服务的进化方向
  • 工具分享--IP与域名提取工具
  • 操作系统-进程
  • HelloKitty IP 翻红,品牌营销如何借势?
  • 性能狂飙 Gooxi 8卡5090服务器重新定义高密度算力
  • day17 力扣654.最大二叉树 力扣617.合并二叉树 力扣700.二叉搜索树中的搜索 力扣98.验证二叉搜索树
  • Excel 转 JSON by WTSolutions API 文档
  • c++STL-优先队列priority_queue和仿函数
  • CS144 lab2 tcp_receiver
  • 机器学习之线性回归(七)
  • TransUnet医学图像分割模型
  • 如何设置直播间的观看门槛,让直播间安全有效地运行?
  • 解锁48V USB-C供电潜力,慧能泰重磅推出PD3.2 DRP芯片HUSB253
  • Flutter优缺点
  • Koa+Puppeteer爬虫教程页面设计
  • 【java17】使用 Word 模板导出带替换符、动态表格和二维码的文档
  • 格式规范公文处理助手:一键排版 标题 / 正文 / 页码一键调,Word 脚本自定义
  • 专题:2025云计算与AI技术研究趋势报告|附200+份报告PDF、原数据表汇总下载
  • 关闭 GitLab 升级提示的详细方法
  • 基于gitlab 构建CICD发布到K8S 平台
  • Tomcat问题:启动脚本startup.bat中文乱码问题解决
  • 信号肽预测工具PrediSi本地化
  • 【flutter】flutter网易云信令 + im + 声网rtm从0实现通话视频文字聊天的踩坑
  • CentOS 安装 JDK+ NGINX+ Tomcat + Redis + MySQL搭建项目环境
  • 『 C++ 入门到放弃 』- 多态
  • MyBatis-Plus通用中等、大量数据分批查询和处理
  • c语言中的数组IV
  • 卸载软件总留一堆“垃圾”?这款免费神器,一键扫清注册表和文件残留!