Algorithm/src/main/java/hash/ContainsNearbyDuplicate.java

31 lines
954 B
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package hash;
import java.util.HashMap;
import java.util.Map;
/**
* 题目: 219. 存在重复元素 II (containsNearbyDuplicate)
* 描述:给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。
*
*
* 示例 1
输入nums = [1,2,3,1], k = 3
输出true
* 链接https://leetcode.cn/problems/contains-duplicate-ii/
*/
public class ContainsNearbyDuplicate {
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(i-map.get(nums[i])<=k)
return true;
else map.put(nums[i],i);
}else
map.put(nums[i],i);
}
return false;
}
}