问题
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k
例子

思路
-
方法1
-
方法2
代码
//方法1
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
Map<Integer,Integer> map = new HashMap<>();
for(int i=0; i<nums.length; i++) {
if(map.containsKey(nums[i])) {
if(Math.abs(i-map.get(nums[i]))<=k) return true;
//如果|i-map.get(nums[i])|<=k,则更新为大的index,即现在的index
else
map.put(nums[i],i);//更改index为i
}else
map.put(nums[i],i);
}
return false;
}
}
//方法2

本文探讨了在给定数组和整数k的情况下,如何判断数组中是否存在两个不同的索引i和j,使得nums[i]=nums[j],并且i和j的差的绝对值最大为k。提供了两种解决方法,包括使用哈希表进行优化的解决方案。
1111

被折叠的 条评论
为什么被折叠?



