美文网首页
219.(set+滑动窗口)数组中nums[i]==nums[j

219.(set+滑动窗口)数组中nums[i]==nums[j

作者: Ching_Lee | 来源:发表于2018-03-25 19:07 被阅读0次

思想:一个一个加入到set,如果正在加入的set中已经有了,就返回true。如果set的长度==k+1,就说明窗口要变小,就把set中nums[i-k]给删除,相当于把数组最前面的数给删除。

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */
var containsNearbyDuplicate = function(nums, k) {
    let set=new Set();
    for(let i=0;i<nums.length;i++){
        if(set.has(nums[i]))
            return true;
        set.add(nums[i]);
        //当set的大小是k+1时,就把最前面的那个移除了
        if(set.size==k+1)
            set.delete(nums[i-k]);
    }
    return false;
};

相关文章

网友评论

      本文标题:219.(set+滑动窗口)数组中nums[i]==nums[j

      本文链接:https://www.haomeiwen.com/subject/zulkcftx.html