题目
typedef long long int _int;
class Solution {
public:
multiset<_int> m;
bool containsNearbyDuplicate(vector<int>& nums, int k) {
int i;
for(i=0;i<nums.size()&&i<k+1;i++)
{
m.insert((_int)nums[i]);
}
for(int i=0;i<nums.size();i++)
{
if(m.size()<=1)
break;
multiset<_int>::iterator it = m.find((_int)nums[i]);
if(it!=m.begin() && abs((*prev(it))-(*it)) <= (_int)0)
return true;
if(next(it)!=m.end() && abs((*next(it))-(*it)) <= (_int)0)
return true;
m.erase(it);
if(i+k+1< nums.size())
m.insert((_int)nums[i+k+1]);
}
return false;
}
};