961. N-Repeated Element in Size 2N Array
阿新 • • 發佈:2019-01-12
961. N-Repeated Element in Size 2N Array
題目概述:
在大小為 2N
的陣列 A
中有 N+1
個不同的元素,其中有一個元素重複了 N
次。
返回重複了 N
次的那個元素。
解法一
class Solution { public int repeatedNTimes(int[] A) { int index = 0; Set<Integer> set = new LinkedHashSet<>();for (int i = 0; i < A.length / 2 + 2; i++) { if (set.contains(A[i])) { index = i;break; } set.add(A[i]); } return A[index]; } }
解法二
class Solution { public int repeatedNTimes(int[] A) { int[] count = new int[10000];for (int a : A) { if (count[a]++ == 1) { return a; } } return -1; } }
解法三
class Solution { public int repeatedNTimes(int[] A) { int i = 0, j = 0, n = A.length; while (i == j || A[i] != A[j]) { i = (int)(Math.random()*n); j= (int)(Math.random()*n); } return A[i]; } }