LeetCode 367[有效的完全平方数]
1.LeetCode1480[一维数组的动态和]2.LeetCode1342[将数字变成0的操作次数]3.LeetCode1672[最富有客户的资产总量]4.LeetCode412[Fizz Buzz]5.LeetCode9[回文数]6.LeetCode3264[K次乘运算后的最终数组I]7.LeetCode3270[求出数字答案]8.LeetCode LCR135[报数]9.LeetCode 1137[第N个泰波那契数]10.LeetCode 2535[数组元素和与数字和的绝对差值]11.LeetCode 2544[交替数字和]12.LeetCode 171[Excel表列序号]13.LeetCode 3014[输入单词需要的最少按键次数I]14.LeetCode 面试题16.07[最大数值]15.LeetCode 13[罗马数字转整数]16.LeetCode 836[矩形重叠]17.LeetCode 69[x的平方根]18.LeetCode 1103[分糖果II]19.LeetCode 2235[两整数相加]20.LeetCode 2769[找出最大的可达成数字]21.LeetCode 1290[二进制链表转整数]22.LeetCode 2455[可被三整除的偶数平均值]23.LeetCode 492[构造矩形]24.LeetCode 1812[判断国际象棋棋盘中一个格子的颜色]25.LeetCode 1837[K进制表示下的各位数字总和]
26.LeetCode 367[有效的完全平方数]
27.LeetCode LCP17[速算机器人]28.LeetCode 2413[最小偶倍数]29.LeetCode 66[加一]30.LeetCode 509[斐波那契数]31.LeetCode LCR126[斐波那契数]32.LeetCode LCR072[x的平方根]33.LeetCode 263[丑数]34.LeetCode 762[二进制表示中质数个计算置位]题目
链接
详情
实例
提示
题解
思路[二分查找]
求算术平方根,逐渐遍历的话,数值小应该是没问题的,但是数值大的话时间应该会超出限制
本质是:给定一个数字,在范围内找一个数字的平方为该数,找到了则输出ture,找不到则输出false
转换一个思路,即给定一个数字,在范围内找出该数,也就是查找问题,最基本的方法就是二分查找
初始值设定最小值 iMin 为 0,最大值 iMax 为给定值 num
开始循环:
求取中间值 iMid = (iMin + iMax) / 2
取中间值的平方 iMul = iMid * iMid
若 iMul 等于 num,则可以找着算术平方根,即返回 true
若 iMul > num,即 iMid > sqrt(num),即所求值小于 iMid,需要在 iMin 到 iMid -1 范围中查找,即 iMax = iMid - 1
若 iMul < num,即 iMid < sqrt(num),即所求值大于 iMid,需要在 iMid + 1 到 iMax 范围中查找,即 iMin = iMid + 1
继续执行循环,直到 iMin > iMax,退出循环,此时为找不到算术平方根,故返回false
代码
类似题目
类似题解
本文来自博客园,作者:EricsT,转载请注明原文链接:https://www.cnblogs.com/EricsT/p/18570843
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)