题目:
难度简单498收藏分享切换为英文接收动态反馈
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3
/**
* 暴力解法
*/
package RepeatNumber;
public class RepeatNumber {
public static int findRepeatNumber(int[] nums){
for(int i =0; i < nums.length; i++){
for(int j =i+1; j < nums.length;j++){
if(nums[i]==nums[j]){
return nums[i];
}
}
}
return -1;
}
public static void main(String[] args) {
int[] test = new int[]{1,2,3,4,4};
System.out.println(findRepeatNumber(test));
}
}
/**
* 哈希表
*/
package RepeatNumber;
import java.util.HashSet;
import java.util.Set;
public class RepeatNumber {
public static int findRepeatNumber(int[] nums){
Set<Integer> set = new HashSet<>();
for(int i =0; i < nums.length; i++){
if(set.contains(nums[i])){
return nums[i];
}
set.add(nums[i]);
}
return -1;
}
public static void main(String[] args) {
int[] test = new int[]{1,2,3,4,4};
System.out.println(findRepeatNumber(test));
}
}