1. 程式人生 > >演算法(輸出一個數組中的重複數,(並非全部重複數))

演算法(輸出一個數組中的重複數,(並非全部重複數))

陣列長度為n+1,元素範圍1-n,輸出一個重複的數。

public class TheSameNumber1 {
    private int theSameNumber(int[] a) {
     int b[]=new int[a.length];
        for (int index=0;index<a.length;index++) {
            b[index]=0;
}
        int i,n;
i=0;
n=a.length;
        while (i<n){
            if(a[i]!=i){
               int 
j=a[i]; if(b[j]==0) b[j]=a[i]; else return b[j]; i++; } else{ i++; } } return -1; } public static void main(String []args){ int []a={3,2,1,1,4}; TheSameNumber1 n=new TheSameNumber1();
int k=n.theSameNumber(a); if(k>-1) { System.out.println("重複數字為:"+k); }else System.out.println("無重複數字!"); } }