每次思考都是一次进步
1、用一个for循环去遍历数组中每个元素,每一个循环寻找一次数组中是否有等于其两倍的数,并且用一个bool标记是否存在这样的数对。
class Solution {
public:
bool checkIfExist(vector<int>& arr) {
sort(arr.begin(),arr.end());
int thesize=arr.size();
bool sign=false;
for(int i=0;i<thesize-1;++i)
{
int l=0,r=thesize-1,mid;
while(l<r)
{
mid=l+(r-l)/2;
if(arr[mid]>2*arr[i]) r=mid;
else if(arr[mid]<2*arr[i]) l=mid+1;
else
{
if(mid==i)
{
l=mid+1;
continue;
}
sign=true;
break;
}
}
if(arr[l]==2*arr[i]) sign=true;
if(sign) break;
}
return sign;
}
};