219. Contains Duplicate II
Total Accepted: 88095
Total Submissions: 281464
Difficulty: Easy
Contributors: Admin
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 difference between i and j is at most k.
Subscribe to see which companies asked this question
解决方法
采用hashmap存储的方式
package Test;
import java.util.HashMap;
public class ContainsDuplicateII {
public static void main(String[] args) {
int [] nums={-1,-1};
ContainsDuplicateII test=new ContainsDuplicateII();
test.containsNearbyDuplicate(nums,1);
}
public boolean containsNearbyDuplicate(int[] nums, int k) {
int length=nums.length;
HashMap<Integer, Integer> hashMap=new HashMap<>();
for(int i=0;i<length;i++){
if(hashMap.containsKey(nums[i])){
if(Math.abs(hashMap.get(nums[i])-i)<=k){
System.out.println("true");
return true;
}
hashMap.put(nums[i], i);
}
hashMap.put(nums[i], i);
}
System.out.println("false");
return false;
}
}