文章目录
8.有效的完全数平方
class Solution {
public boolean isPerfectSquare(int num) {
if(num==0||num==1){
return true;
}
long i = 0;
long j = num/2;
while(i<=j){
long mid = i+(j-i)/2;
long sq = mid*mid;
if(sq>num){
j = mid -1;
}
else if(sq == num){
return true;
}
else{
i = mid + 1;
}
}
return false;
}
}
9. x 的平方根
k*k<=X, l=k
k*k>X,r=k-1
class Solution {
public int mySqrt(int x) {
int l = 0, r = x;
while (l < r) {
int mid = l + (r - l) / 2 + 1;//+1避免死循环
if ((long)mid*mid <= x) l = mid;
else r = mid - 1;
}
return l;
}
};