219. 存在重复元素 II

219. 存在重复元素 II


题目链接:219. 存在重复元素 II

代码如下:

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
        //key:值,value:上一个相同元素的位置
        unordered_map<int,int>  um;
        for(int i=0;i<nums.size();i++)
        {
            //不存在这个值,就插入
            if(um.find(nums[i])==um.end())
            {
                um[nums[i]]=i;
            }
            else//存在就进行比较
            {   
                int pos=um[nums[i]];
                if(abs(pos-i)<=k)//满足条件就返回
                    return true;
                um[nums[i]]=i;//不满足就更新该值的下标,进行下次循环
            }
        }

        return false;
    }
};

你可能感兴趣的:(leetcode,c++)