class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param weights int整型vector
     * @param n int整型
     * @param k int整型
     * @return bool布尔型
     */
    map<int, int>mp;
    bool checkDuplicate(vector<int>& weights, int n, int k) {
        // write code here
        for (int i = 0; i < n; ++i) {
            if (mp.count(weights[i]))
                if (i - mp[weights[i]] <= k)return true;
            mp[weights[i]] = i;
        }
        return false;
    }
};

一、题目考察的知识点

哈希表

二、题目解答方法的文字分析

出现了键值对可以考虑哈希表,记录一下相同元素上一次出现的位置是在哪,然后计算一下两者之间的距离,如果满足条件,那么就找打了,很巧妙的方法,非常方便

三、本题解析所用的编程语言

c++