去重排序法

给n个数 范围1~1001,去除重复的数,并排序

普通实现方法(java语音)

public int [] getResultArray(int[] inputArray, int n)
    {
        if (n <= 0) {
            return null;
        }
        
        Set<Integer> set = new HashSet<Integer>();
        for (int i =0 ; i < n; i++) {
            set.add(inputArray[i]);
        }
        
        int size = set.size();
        int array[] = new int[size];
        Object[] obj = set.toArray();
        for (int i =0 ; i < size; i++) {
            array[i] = (Integer)obj[i];
        }
        
        Arrays.sort(array);
        return array;        
    }

比较不错的实现方法

int GetResultArray(int *InputString, int n, int *OutputString)
{
    int i,j,k = 0;
        int array[1001] = {0};
        if ( n <= 0 || NULL == InputString || NULL == OutputString)
        {
            return -1;
        }

        for(i = 0;i < n;i++)
        {
            j = InputString[i]; array[j] = 1;
        }

        for(i = 1;i <= 1000;i++)
        {
            if(array[i] == 1)
                {
                    OutputString[k++] = i;
                }
        }

        return 0;
}

 

posted @ 2017-10-13 15:06  牧 天  阅读(193)  评论(0)    收藏  举报