给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。
不能使用任何内置的库函数,如 sqrt 。
方法一:看的题解,果然评论区都是大聪明
class Solution {
public boolean isPerfectSquare(int num) {
if ((Math.pow(num,0.5))%1==0){
return true;
}else{
return false;
}
}
}
方法二:采用二分法
public class Solution {
public boolean isPerfectSquare(int num) {
int left=0;
int right=num/2+1;
int mid=0;
if(num==0||num==1){
return true;
}
while (left<=right){
mid=left+(right-left)/2;
if ((double)num/mid==mid){
return true;
}else if(num/mid<mid){
right=mid-1;
}else{
left=mid+1;
}
}
return false;
}
}