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.
public class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
if(nums.length <1) return false;
if(k <1) return false;
int i = 0;
int j = k < nums.length ? k :nums.length -1;
while(i<j && j<nums.length){
if(nums[i] != nums[j]){
i++;
}
else{
return true;
}
if(i==j){
i = i-k+1;
j++;
}
}
return false;
}
}
This site Original article All followed" Attribution—NonCommercial—ShareAlike 4.0 (CC BY-NC-SA 4.0) ”。 Please keep the following marks for sharing and interpretation:
Original author: Jake Tao Source: 「LeetCode – 219. Contains Duplicate II」
Post a reply