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);
}
}