专栏首页LeetCode解题219. 存在重复元素 II
原创

219. 存在重复元素 II

链接

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

这题是真的有个坑,并且 i 和 j 的差的绝对值最大为 k。

func containsNearbyDuplicate(nums []int, k int) bool {
	if k <= 0 {
		return false
	}
	
	// 利用 m 记录 a[i]中的值,每次出现的(索引号+1)
	m := make(map[int]int, len(nums))

	for i, n := range nums {
		if m[n] != 0 && i-(m[n]-1) <= k {
			return true
		}
		m[n] = i + 1
	}

	return false
}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 219. 存在重复元素 II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为...

    lucifer210
  • 219. 存在重复元素 II

    CaesarChang张旭
  • Leetcode 219. 存在重复元素 II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为...

    zhipingChen
  • 【力扣】219存在重复元素II

    瑞新
  • LeetCode 219. 存在重复元素 II(哈希)

    给定数组nums和常数k,存在不同的i、j使得nums[i] = nums[j],且abs(i-j) <= k。

    Michael阿明
  • LeetCode 219: 存在重复元素 II Contains Duplicate II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为...

    爱写bug
  • 画解算法:219. 存在重复元素 II

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

    灵魂画师牧码
  • 存在重复元素 II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至...

    _kyle
  • LeetCode 0219. 存在重复元素 II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums i = nums j,并且 i 和 j 的差的 绝对值 至多为 k...

    Yano_nankai

扫码关注云+社区

领取腾讯云代金券