使用HashMap巧求重复元素
题目:数字1-1000放在一个长度为1001的int 类型的数组中,其中只有一个数字是重复的,求这个重复数字是哪个?(要求所有元素最多只能取一次)
偶然看到这样一个题,想到最近看的HashMap源码,可以巧用HashMap来解答此题,先贴下答案。(这里用一个11位的数组演示)
1、解题代码
import java.util.HashMap;
public class getDuplicate {
public static int getDup(int E[]){
Integer key = 0;
HashMap<Integer, Integer> hashmap = new HashMap<>();
for (int i = 0; i < E.length; i++) {
key = hashmap.put(E[i],E[i]);
if (null != key){
break;
}
}
return key;
}
public static void main(String[] args) {
int E[] = {1,2,3,4,5,6,7,8,9,3};
System.out.println("The duplicate element is " +getDup(E));
}
}
结果
The duplicate element is 3