leetcode 219. Contains Duplicate II

Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.

随便搞吧

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
        unordered_map<int, int> mp;
        for (int i = 0; i < nums.size(); ++i) {
            if (!mp.count(nums[i])) {
                mp.insert({nums[i], i});
            } else {
                int x = mp.find(nums[i])->second;
                if (i - x <= k) return true;
                else mp[nums[i]] = i;
            }
        }
        return false;
    }
};

 

posted on 2017-07-29 09:35  Beserious  阅读(149)  评论(0编辑  收藏  举报