1. 程式人生 > >java實現陣列中找重複的數字

java實現陣列中找重複的數字

在一個長度為n的數組裡的所有數字都在 0~n-1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的,也不知道每個數字重複了幾次。請找出陣列中任意一個重複的數字。例如:如果輸入長度為7的陣列{2,3,1,0,2,5,3},那麼對應的輸出的是重複的數字2或者3 

     思路如下:

下面用java程式碼實現如下:

import java.util.Scanner;

public class Main {

public static void getRepeateNum( int[] num) {

int NumChange;

System.out.println("重複數字是:"

);

for(int index = 0; index < num.length; index++) {

while(num[index] != index) {

if(num[index] == num[num[index]]) {

System.out.print(num[index]+" ");

break;

} else {

NumChange = num[num[index]];

num[num[index]] = num[index];

num[index] = NumChange;

}

}

}

}

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int[] num = new int[5];  //陣列長度可以自己定義

System.out.println("請輸入一組資料:");

for(int i = 0; i < 5; i++) {

num[i] = scanner.nextInt();

}

getRepeateNum(num);

}

}