219. 存在重复元素II
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。
解法
bool containsNearbyDuplicate(vector<int>& nums, int k) { unordered_map<int,int> nmap; for (int i = 0; i <nums.size();i++) { if (nmap.count(nums[i]) == 0) nmap[nums[i]] = i; else if (i - nmap[nums[i]] <=k) return true; else //不断更新nums[i]的最新索引,免去erase的消耗 nmap[nums[i]] = i; } return false; }