我不知道暴力会不会超时,但是我想暴力的话应该会的吧,我取巧先用map查看vector中是否有重复的元素,就感觉已经在超时的边缘疯狂试探,思路如下:先用map查看vector中是否有重复元素,若无直接return false,若有那么暴力code如下:
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
map<int, int>mp;
for (int i = 0; i < nums.size(); i++)
{
mp[nums[i]]++;
}
int flag = 0;
for (auto it = mp.begin(); it != mp.end(); it++)
{
if (it->second > 1)
{
flag = 1;
break;
}
}
if (flag == 0)return false;
else
{
for (int i = 0; i < nums.size(); i++)
{
for (int j = i + 1; j < nums.size(); j++)
{
if (nums[i] == nums[j] && abs(j - i) <= k)
{
return true;
}
}
}
}
return false;
}
};