题解 | #小乐乐与序列#

小乐乐与序列

http://www.nowcoder.com/practice/9a1c1c764ce04fed8ceff7714e74d3b6

#include<stdio.h>
#include<stdlib.h>
int cmp(const int *a,const int *b)
{
    return *(int *)a-*(int *)b;
}
int main(void)
{
    int n;
    scanf("%d",&n);
    int *a=(int *)malloc(sizeof(int)*n);
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
    qsort(a,n,sizeof(int),cmp);//调用了c语言的库函数快排函数,这是解法1
/*    for(int i=0;i<n-1;i++)//冒泡排序;第一次用冒泡排序超时了
        for(int j=0;j<n-i-1;j++)
        {
            if(a[j]>a[j+1])
            {
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
*/
    int l=0,r=1;//定义l和r变量,分别指向数组的前面的打印元素和后面的扫描元素
    while(r<n)//打印时去重打印,
    {
        if(a[l]==a[r])//如果遇到l和r的元素相同时,r++;
            r++;
        else//如果不同时,则先把l指向的元素打印,再直接把l挪到r的位置
        {
            printf("%d ",a[l]);
            l=r;
            r++;
        }
    }
    printf("%d",a[r-1]);//要知道最后一个r指向的元素未打印,所以补上
    return 0;
}
全部评论

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
11-24 11:23
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务