今天做了两个二分查找的题来巩固所学内容
分别是力扣69和367,这两个题目类似,这里分享一下自己的367题思路
这个题没什么难度,需要注意的是mid*mid会溢出,所以要将乘法改成除法,为了避免mid出现0的情况,left从1开始
class Solution {
public:
bool isPerfectSquare(int num) {
long right=num;
long left=1;
while(left<=right){
long mid=left+(right-left)/2;
if(mid*mid>num) //用乘法可能会溢出
right=mid-1;
else if(mid*mid<num)
left=mid+1;
else
return true;
}
return false;
}
};