题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021071219570762.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjM3OTU2MQ==,size_16,color_FFFFFF,t_70)
解法一
因为题目只要求返回其中一个重复元素,所以可以直接使用一层循环来解决问题。在循环前,可以先将数组进行排列,排列后重复元素必然相邻,用下标和下标+1表示两个元素,进行比对,若相等,则为重复元素,可以直接跳出循环进行输出。如下图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210712200523726.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjM3OTU2MQ==,size_16,color_FFFFFF,t_70) 代码:
class Solution {
public int findRepeatNumber(int[] nums) {
Arrays.sort(nums);
int r = 0;
for(int i = 0;i <nums.length-1;i++){
if(nums[i]==nums[i+1]){
r = nums[i+1];
break;
}
}
return r;
}
}
解法二
因为是寻找重复元素,可以利用HashSet的add()方法来解决问题。
- set.add():用来向 Set 集合添加对象,返回值为boolean。如果 Set 集合中不包含要添加的对象,则添加对象并返回true,否则返回 false。
代码:
class Solution {
public int findRepeatNumber(int[] nums) {
int result = 0;
Set<Integer> set = new HashSet<>();
for(int i = 0;i<nums.length;i++){
if(!set.add(nums[i])){
result = nums[i];
}
}
return result;
}
}
|