367. 有效的完全平方数
https://leetcode.cn/problems/valid-perfect-square/
难度简单387
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
示例 1:
输入:num = 16 输出:true
示例 2:
输入:num = 14 输出:false 提示:
1 <= num <= 2^31 - 1
通过次数155,399提交次数346,351
class Solution {
public boolean isPerfectSquare(int num) {
// 方法一:【打表】计算出1-2^31-1的所有完全平方数,然后查num是否在其中。
// 方法二:【暴力遍历】 从x=开始,计算x*x 是否等于num
// 方法三:【二分查找】
// 二分查找
int start = 0;
int end = num;
int mid;
while(start<=end)
{
mid = (end-start)/2+start;
long ans = (long)mid*mid;
if(ans > num) end = mid-1;
else if(ans < num) start = mid+1;
else return true;;
}
return false;
}
}

该博客介绍了一个简单的编程问题,即如何判断一个正整数是否为完全平方数。提供了一个使用二分查找算法的解决方案,避免了暴力遍历和使用内置的平方根函数。示例代码展示了如何在给定范围内有效地检查输入数字是否为完全平方数。
1010

被折叠的 条评论
为什么被折叠?



