Contains Duplicate II(C++存在重复元素 II)

解题思路:

(1)将每个数使用map中的key存储,value存储的是该数在数组中的位置

(2)依次比较相邻的位置,判断即可

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
        unordered_map<int,vector<int>> mp;
        int length = nums.size();
        for (int i=0;i<length;i++) {
        	if (mp[nums[i]].size()==0) mp[nums[i]].push_back(i);
        	else if (i-*mp[nums[i]].rbegin()<=k) return true;
        	else mp[nums[i]].push_back(i);
		}
		return false; 
    }
};
发布了302 篇原创文章 · 获赞 277 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/coolsunxu/article/details/105609537