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;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69095.html