排个序二分一下?(时间复杂度O(nlogn?))
为啥二重循环也能过呀
class Solution {
public:
int duplicateInArray(vector<int>& nums) {
int flag=1;
vector<int> temp=nums;
sort(temp.begin(),temp.end());
//for(auto c:temp) cout<<c<<endl;
for(int i=0;i<nums.size();i++)
{
int l=i+1,r=nums.size()-1;
while(l<r)
{
int mid=l+r>>1;
if(temp[mid]>=temp[i]) r=mid;
else l=mid+1;
}
if(temp[l]==temp[i])
{
cout<<temp[l]<<endl;
break;
}
}
}
};