算法(输出一个数组中的重复数,(并非全部重复数))

数组长度为n+1,元素范围1-n,输出一个重复的数。

public class TheSameNumber1 {
    private int theSameNumber(int[] a) {
     int b[]=new int[a.length];
        for (int index=0;indexlength;index++) {
            b[index]=0;
        }
        int i,n;
        i=0;
        n=a.length;
        while (iif(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("无重复数字!");
    }
}

你可能感兴趣的:(面经)