219. Contains Duplicate II

Description

Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.

Constraints

Approach

Examples

Input: nums = [1, 2, 3, 1], k = 3

Output: true

Solutions

/**
 * Time complexity : O(N*min(N, K))
 * Space complexity : O(1)
 */

class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        for(int i = 0; i < nums.length; i++) {
            for(int j = Math.max(i - k, 0); j < i; j++) {
                if(nums[i] == nums[j]) {
                    return true;
                }
            }
        }
        return false;
    }
}

Follow up

Last updated

Was this helpful?