⬆︎
×

[LC] 0219 Contains Duplicate II

Java

import java.util.HashMap;

/**
 * 数组;哈希表;滑动窗口
 */
class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        HashMap<Integer, Integer> map = new HashMap<>();    // nums[i] -> i
        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(nums[i]) && i - map.get(nums[i]) <= k) {
                return true;
            }
            map.put(nums[i], i);
        }
        return false;
    }
}

Go

func containsNearbyDuplicate(nums []int, k int) bool {
    m := make(map[int]int) // nums[i] -> i
    for i, v := range nums {
        if j, ok := m[v]; ok && i-j <= k {
            return true
        }
        m[v] = i
    }
    return false
}

JavaScript

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */
var containsNearbyDuplicate = function (nums, k) {
    let map = new Map();
    for (let i = 0; i < nums.length; i++) {
        if (map.has(nums[i]) && i - map.get(nums[i]) <= k) {
            return true;
        }
        map.set(nums[i], i);
    }
    return false;
};

PHP

class Solution {

    /**
     * @param Integer[] $nums
     * @param Integer $k
     * @return Boolean
     */
    function containsNearbyDuplicate(array $nums, int $k): bool {
        $map = [];
        foreach ($nums as $i => $v) {
            if (isset($map[$v]) && $i - $map[$v] <= $k) {
                return true;
            }
            $map[$v] = $i;
        }
        return false;
    }
}

发表评论