【剑指offer】面试题03:数组中重复的数字(java)
在一個(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?
?
限制:
2 <= n <= 100000
代碼:
class?Solution?{
????public?int?findRepeatNumber(int[]?nums)?{
????????if(nums.length==0)
????????{
????????????return?0;
????????}
????????for(int?i=0;i<nums.length;)
????????{
????????????if(nums[i]!=i&&nums[nums[i]]!=nums[i])
????????????{
????????????????int?t?=?nums[nums[i]];
????????????????nums[nums[i]]?=?nums[i];
????????????????nums[i]?=?t;
????????????}
????????????else
????????????{
????????????????i++;
????????????}
????????}
????????for(int?i=0;i<nums.length;i++)
????????{
????????????if(nums[i]!=i)
????????????{
????????????????return?nums[i];
????????????}
????????}
????????return?0;
????}
}
總結(jié)
以上是生活随笔為你收集整理的【剑指offer】面试题03:数组中重复的数字(java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java打印三角形(双层for循环)
- 下一篇: Leetcode--102. 二叉树的层