美文网首页
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