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;
}
}
微信扫一扫
支付宝扫一扫