题目:重复 N 次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。
返回重复了 N 次的那个元素。
示例:
输入:[1,2,3,3]
输出:3
输入:[2,1,2,5,3,2]
输出:2
输入:[5,1,5,2,5,3,5,4]
输出:5
思考:
一共2N个元素,有N+1个不同的元素,有一个元素重复N次。说明该数组中有且只有一个元素重复,就是要求的这个元素。
所以利用一个Map,寻找出现次数大于1次的元素即可。
实现:
class Solution {
public int repeatedNTimes(int[] A) {
Map<Integer, Integer> time = new HashMap<>();
int count;
for (count = 0; count < A.length; count++) {
if (time.containsKey(A[count])) {
break;
} else {
time.put(A[count], 0);
}
}
return A[count];
}
}