标签:inpu sort 直接 not 遍历数组 unique 排序 element NPU
【题目】
In a array A
of size 2N
, there are N+1
unique elements, and exactly one of these elements is repeated N times.
Return the element repeated N
times.
Example 1:
Input: [1,2,3,3]
Output: 3
Example 2:
Input: [2,1,2,5,3,2]
Output: 2
Example 3:
Input: [5,1,5,2,5,3,5,4]
Output: 5
Note:
4 <= A.length <= 10000
0 <= A[i] < 10000
A.length
is even【题意】
数组A中一共有2N个元素,其中一个元素重复了N次,其他元素都是唯一的。返回重复的元素。
【解答】
1:对原数组直接排序。时间O(nlogn)。
class Solution { public: int repeatedNTimes(vector<int>& A) { int len = A.size(); sort(A.begin(), A.end()); for(int i=0; i+1<len; i++){ if(A[i+1] == A[i]) return A[i]; } return -1; } };
2:遍历数组,对每一个元素判断是否前面已经出现过。因为有一半都是重复的元素,所以效率比较高。
class Solution { public: int repeatedNTimes(vector<int>& A) { int len = A.size(); for(int i=1; i<len; i++){ for(int j=0; j<i; j++){ if(A[i] == A[j]) return A[i]; } } return -1; } };
961. N-Repeated Element in Size 2N Array
标签:inpu sort 直接 not 遍历数组 unique 排序 element NPU
原文地址:https://www.cnblogs.com/xxinn/p/10317566.html