找出數(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ù)字。
class Solution {
public int findRepeatNumber(int[] nums) {
int len = nums.length;
for(int i=0;i<len;i++){
if(nums[i]!=i){
if(nums[i]==nums[nums[i]]){
return nums[i];
} else {
int tmp = nums[nums[i]];
nums[nums[i]] = nums[i];
nums[i]=tmp;
}
}
}
return -1;
}
}
思路:交換i和nums[i]數(shù)字森瘪,直到發(fā)現(xiàn)有重復(fù)的辈双,返回這個(gè)數(shù)。