看了leetcode上的讨论,感觉他们的解法考虑的边界并不全面。由此我给出自己的JAVA解法。对于数组的查找问题,我比较喜欢
“双指针”。
代码如下:
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
if(nums.length<=k){
for(int i=0;i<nums.length-1;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]==nums[j]){
return true;
}
}
}
}else{
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<=(i+k<nums.length?i+k:nums.length-1);j++){
if(nums[i]==nums[j]){
return true;
}
}
}
}
return false;
}
}