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]; } }