文章目录
题目
方法一:二分查找
找 1 - num 之间的 mid, 开方是整数 就找得到 mid, 不是整数自然找不到mid
java
class Solution {
// 二分查找 ;找 1 - num 之间的mid 开方是整数 就找得到 不是整数自然找不到
public boolean isPerfectSquare(int num) {
int res = serach(num);
if(res == -1) return false;
else return true;
}
// 二分查找
public int serach(int num){
int left = 1;
int right =num;
while(left <= right){
int mid = left + (right - left)/2;
if((long)mid * mid == num) {
return mid;//找到整数了 说明num开方是整数
}else if((long)mid * mid > num) right = mid -1;
else left = mid + 1;
}
return -1;
}
}
相似的题目:【LeetCode-中等题】69. x 的平方根