961-重复 N 次的元素

11次阅读

共计 469 个字符,预计需要花费 2 分钟才能阅读完成。

前言
Weekly Contest 116 的 重复 N 次的元素:

在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。
返回重复了 N 次的那个元素。
示例 1:
输入:[1,2,3,3]
输出:3
示例 2:
输入:[2,1,2,5,3,2]
输出:2
示例 3:
输入:[5,1,5,2,5,3,5,4]
输出:5
提示:

4 <= A.length <= 10000
0 <= A[i] < 10000

A.length 为偶数

解题思路
本题首先要搞清楚输入的数组特征,根据题目的信息可以推导出输入的数组其实是一个由 N 个相同元素和 N 个不同的元素组成的长度为 2N 的数组,所以只需要对数组排序后,相邻的两个元素进行比较,找到相同的元素并返回该元素即可。
实现代码
/**
* 961. 重复 N 次的元素
* @param A
* @return
*/
public int repeatedNTimes(int[] A) {
int num=-1;
Arrays.sort(A);
for(int i=0;i<A.length-1;i++){
if(A[i]==A[i+1]){
num=A[i];
break;
}
}
return num;
}

正文完
 0