题解 | #明明的随机数#

明明的随机数

https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

#include <stdio.h>
#include<stdlib.h>
//解题思路:先排序,无需去重,只输出不重复的即可
int Partition(int * list,int low,int high);
void QuickSort(int * list,int low,int high)
{
    if(low<high)
    {
        int pivotpos=Partition(list,low,high);
        QuickSort(list, low, pivotpos-1);
        QuickSort(list, pivotpos+1, high);
    }
}
int Partition(int* list,int low,int high)
{
    int pivot=list[low];
    while(low<high)
    {
        while(low<high&&list[high]>=pivot)
            high--;
        list[low]=list[high];
        while(low<high&&list[low]<=pivot)
            low++;
        list[high]=list[low];
    
    }
    list[low]=pivot;
    return low;
}
int main() {
    int n,i=0,*set,j=0;
    int ret[500]={0};
    scanf("%d",&n);
    set=(int *)malloc(sizeof(int)*n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&set[i]);
    }
    QuickSort(set, 0, n-1);//快排
    for(i=1;i<n;i++)
    {
        if(set[i-1]!=set[i])
        {
            printf("%d\n",set[i-1]);
        }
    }
    printf("%d",set[n-1]);//最后两个元素无论是否相同都缺一个没输出,再输出最后一个即可
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务