leetcode刷题笔记 219题 存在重复元素 II

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

//使用Set维护K长度的滑动窗口
import scala.collection.mutable
object Solution {
    def containsNearbyDuplicate(nums: Array[Int], k: Int): Boolean = {
        val Hset = mutable.Set[Int]()

        for (i <- 0 to nums.length-1) {
            if (Hset.contains(nums(i))) return true
            Hset.add(nums(i))
            if (Hset.size > k) Hset.remove(nums(i-k))
        }
        
        return false
    }
}
posted @ 2020-10-05 10:25  ganshuoos  阅读(104)  评论(0编辑  收藏  举报