[leetcode]存在重复元素 II[javascript]

https://leetcode-cn.com/problems/contains-duplicate-ii/

描述

给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引* i* 和* j*,使得 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

分析

也是转换为对象,把下标赋值为值。有重复判断当前遍历的i与对象值得差是否小于等于k。

var containsNearbyDuplicate = function(nums, k) {
  let len = nums.length, obj = {}
  for (let i = 0; i < len; i++) {
    if (obj[nums[i]]) {
      obj.flag = true
      if (i + 1 - obj[nums[i]] <= k) {
        return true
      }
    }
    obj[nums[i]] = i + 1
  }
  return false
};

相关链接

存在重复元素

猜你喜欢

转载自blog.csdn.net/u010690493/article/details/85601922