题目
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
解题思路
1.题目要求我们找出数组中重复的数字,要解决这个问题我们可以再 new 一个新的数组,然后对原数组进行遍历,将原数组中元素的值所对应的新数组的下标进行加一操作。也就是若原数组出现了两个2,那么新数组arr[2] = 2。
2.进行完上述操作后我们利用if判断新数组的值是否大于1,若大于一我们就返回所对应原数组的值,若没有找到重复的数字返回 -1即可
代码实现
class Solution {
public int findRepeatNumber(int[] nums) {
int[] arr = new int[nums.length];
for(int i = 0; i < nums.length; i++){
arr[nums[i]]++;
if(arr[nums[i]] > 1){
return nums[i];
}
}
return -1;
}
}