一.題目:
找出數(shù)組中重復(fù)的數(shù)字。
在一個(gè)長(zhǎng)度為 n 的數(shù)組 nums 里的所有數(shù)字都在 0~n-1 的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個(gè)數(shù)字重復(fù)了,也不知道每個(gè)數(shù)字重復(fù)了幾次。請(qǐng)找出數(shù)組中任意一個(gè)重復(fù)的數(shù)字。
示例 1:
輸入:
[2, 3, 1, 0, 2, 5, 3]
輸出:2 或 3
二.題解:
1.第一種方法:遍歷數(shù)組
(1)解題思路:
- 利用for循環(huán)遍歷數(shù)組,將數(shù)組nums[]中的元素添加到集合HashSet set中
- 同時(shí)判定set中是否包含nums[i]的元素
- 若包含則返回nums[i]元素,同時(shí)退出循環(huán)
- 否則進(jìn)行下一次循環(huán)
(2)代碼:
class Solution {
public int findRepeatNumber(int[] nums) {
int rep =-1;
Set<Integer> set = new HashSet<Integer>();
for(int i=0;i<nums.length;i++){
if(set.contains(nums[i])){
rep=nums[i];
break;
}
set.add(nums[i]);
}
return rep;
}
}