367. Efficient Perfect Squares
problem solving ideas
- use binary search
- The search interval is [1, num]
- Compare mid * mid and num and change the search interval
class Solution {
public boolean isPerfectSquare(int num) {
// 二分查找
// 区间就是[1,num.length]
long left = 1;
long right = num;
long mid = 0;
while(left <= right){
mid = left + (right- left) / 2;
long sq = mid * mid;
if(sq > num){
right = mid - 1;
}else if(sq < num){
left = mid + 1;
}else{
break;
}
}
return mid * mid == num;
}
}