原文:219. 存在重复元素 II(leetcode 解题) - 每天一个JavaScript小知识@Js中文网 · 码农进阶题库

原文地址:https://www.javascriptc.com/interview-tips/zh_cn/leetcode/leetcode-javascript-solution-0219/

题目:

难度:Easy

相关话题:数组哈希表

给定一个整数数组和一个整数k ,判断数组中是否存在两个不同的索引ij ,使得nums [i] = nums [j] ,并且 ij 的差的绝对值最大为 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
/**
 * @来源: Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
 * @介绍:一个致力于帮助开发者用代码改变世界为使命的平台,每天都可以在这里找到技术世界的头条内容
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */
var containsNearbyDuplicate = function(nums, k) {
  let hash={}
  for(let i=0;i<nums.length;i++){
    if(hash[nums[i]]==null)hash[nums[i]]=i
    else{
      let step=i-hash[nums[i]]
      if(step<=k)return true
      else hash[nums[i]]=i
    }
  }
  return false
};