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

有效的完全平方数--LeetCode

题目

给你一个正整数num。如果num是一个完全平方数,则返回true,否则返回false 。
完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。
不能使用任何内置的库函数,如sqrt。

示例 1:

  • 输入:num=16
  • 输出:true
  • 解释:返回 true因为4*4=16 且4是一个整数。

示例 2:

  • 输入:num = 14
  • 输出:false
  • 解释:返回false,因为3.742*3.742=14但3.742不是一个整数。

解题思路

  1. 初始化边界和标记变量
    由于一个数 num 的平方根肯定在 0 到 num 这个范围内,所以初始化二分查找的左边界 left 为 0,右边界 right 为 num。同时初始化一个布尔变量 flash 来标记是否找到完全平方数,初始值设为 false
  2. 二分查找过程
    在 while 循环中,只要左边界 left 小于等于右边界 right,就计算中间位置 mid
    • 如果 mid 的平方(转换为 long 类型防止溢出)小于 num,说明完全平方数在 mid 的右侧,将左边界 left 更新为 mid + 1,继续向右查找。
    • 如果 mid 的平方大于 num,说明完全平方数在 mid 的左侧,将右边界 right 更新为 mid - 1,继续向左查找。
    • 如果 mid 的平方等于 num,说明找到了完全平方数,将 flash 标记为 true,并为了让循环结束,将左边界 left 更新为 mid + 1
  3. 返回结果
    当循环结束时,根据 flash 的值返回结果。如果 flash 为 true,说明找到了完全平方数,返回 true;否则返回 false
class Solution {public boolean isPerfectSquare(int num) {int left = 0;int right = num;boolean flash = false;while (left <= right) {int mid = (left + right) / 2;if ((long)mid * mid < num) {// 将 mid 转换为 long 类型后计算平方,因为当 mid 较大时,int 类型相乘可能会溢出// 如果 mid 的平方小于 num,说明完全平方数在 mid 的右侧left = mid + 1;// 所以将左边界更新为 mid + 1,继续向右查找} else if ((long)mid * mid > num) {// 如果 mid 的平方大于 num,说明完全平方数在 mid 的左侧right = mid - 1;// 因此将右边界更新为 mid - 1,继续向左查找} else {// 如果 mid 的平方等于 num,说明找到了完全平方数flash = true;left = mid + 1;// 为了让循环继续结束(因为已经找到答案,这里更新左边界只是为了让循环条件不满足从而退出),将左边界更新为 mid + 1}}return flash;}
}

相关文章:

  • HFSS3(limy)——建模学习记录
  • 工业级MIFI解决方案:打造低时延、高可靠性的Wi-Fi网络快速部署体系!
  • 【专刷】滑动窗口(一)
  • 字符串系列一>二进制求和
  • HTML5+CSS3小实例:CSS立方体
  • 在RK3588上使用哪个流媒体服务器合适
  • 性能比拼: Elixir vs Go(第二轮)
  • JAVA的泛型
  • C++项目 —— 基于多设计模式下的同步异步日志系统(3)(日志器类)
  • 前端面试中高频手撕[待补充]
  • BR_频谱20dB 带宽(RF/TRM/CA/BV-05-C [TX Output Spectrum – 20 dB Bandwidth])
  • RAG工程-基于LangChain 实现 Naive RAG
  • 从GET到POST:HTTP请求的攻防实战与CTF挑战解析
  • 嵌入式linux系统中内存管理的方法与实现
  • 筑基挑战 | 第14期
  • UI文件上传
  • AI与IT的共生
  • 小测验——已经能利用数据集里面的相机外参调整后看到渲染图像
  • 网页聊天系统项目
  • 谷歌新域名结构:Hreflang的未来展望
  • 价格周报|本周生猪均价环比上涨,交易均重继续上升
  • 河北衡水中学再换校长
  • 蓝思科技一季度净利增近四成,预计关税对整体经营影响非常有限
  • 二十届中央第五轮巡视完成进驻
  • 深一度|传统模式逐渐式微,健身行业只能“小而美”?
  • 抖音首度披露算法机制:利用神经网络预估用户行为,不依赖打标签,“机器+人工”双重审核