在长度 2N 的数组中找出重复 N 次的元素Java
文章发布较早,内容可能过时,阅读注意甄别。
# 题目
给你一个整数数组 nums ,该数组具有以下属性:
- nums.length == 2 * n.
- nums 包含 n + 1 个 不同的 元素
- nums 中恰有一个元素重复 n 次
找出并返回重复了 n 次的那个元素。
示例 1:
输入:nums = [1,2,3,3]
输出:3
示例 2:
输入:nums = [2,1,2,5,3,2]
输出:2
示例 3:
输入:nums = [5,1,5,2,5,3,5,4]
输出:5
提示:
- 2 <= n <= 5000
- nums.length == 2 * n
- 0 <= nums[i] <= 104
- nums 由 n + 1 个 不同的 元素组成,且其中一个元素恰好重复 n 次
# 思路
Random.nextInt
# 解法
class Solution {
public int repeatedNTimes(int[] A) {
Random r = new Random();
int len = A.length;
int a,b;
while(true){
a = r.nextInt(len);
b = r.nextInt(len);
if(a!=b && A[a]==A[b]){
return A[a];
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 总结
- 分析出几种情况,然后分别对各个情况实现