美文网首页
219. 存在重复元素 II

219. 存在重复元素 II

作者: 吃饭用盘装 | 来源:发表于2018-06-05 19:37 被阅读51次

内容

给定一个整数数组和一个整数 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


思路

这里就是利用map(对象)用来记录每次遍历的值(key)的下标(value),如果某次遍历中,遇到了一个已经在map中存在的键值对,那么这个时候判断当前的下标的绝对值之差是否在k的范围内


代码

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */
var containsNearbyDuplicate = function(nums, k) {
    var map={};
    for(var i=0;i<nums.length;i++){
        if(map[nums[i]]>=0 && Math.abs(map[nums[i]]-i)<=k){
            return true;   
        }else{
            map[nums[i]]=i;
        }
    }
    return false;
};

回到目录

相关文章

网友评论

      本文标题:219. 存在重复元素 II

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