leetcode 219. 存在重复元素 II(Contains Duplicate II)
题目描述:
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。
示例 1:
    输入: nums = [1,2,3,1], k = 3
    输出: true
示例 2:
    输入: nums = [1,0,1,1], k = 1
    输出: true
示例 3:
    输入: nums = [1,2,3,1,2,3], k = 2
    输出: false
算法:
class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
        unordered_map<int, int> mp;
        int sz = nums.size();
        for(int i = 0; i < sz; i++){
            if(mp.find(nums[i]) == mp.end()){
                mp[nums[i]] = i;
            }else{
                if(i - mp[nums[i]] <= k){
                    return true;
                }else{
                    mp[nums[i]] = i;
                }
            }
        }
        return false;
    }
};

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号