数组中重复的数字

题目:

在一个长度为n的数组里的所有数字都在0-n-1的范围内,数字中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

解答:

 1 public class Solution {
 2 
 3     public static boolean duplicate(int arr, int n, int dup) {
 4         if(arr == null || n <= 0) {
 5             return false;
 6         }
 7 
 8         for(int i = 0; i < arr.length; i++) {
 9             if(arr[i] < 0 || arr[i] > n-1) {return false;}
10         }
11 
12         for(int i = 0; i < arr.length; i++) {
13 
14             while(arr[i] != i) {
15                 if(arr[i] == arr[arr[i]]) {
16                     dup = arr[i];
17                     retur true;
18                 }
19 
20                 int temp = arr[i];
21                 arr[i] = arr[temp];
22                 arr[temp] = temp;
23             }
24         }
25 
26         return false;
27     }
28 }
原文地址:https://www.cnblogs.com/wylwyl/p/10473029.html