• 题解——明明的随机数(数组去重和排序)


    #include <iostream>

    #include <cstdio>

    using namespace std;

    int n;

    int a[105];

    int b[105];

    int read()

    {

        scanf("%d",&n);

        for(int i=0;i<n;i++)//不能开一个变量大小的数组,但可以用for循环来控制使用多少空间

        {

            int x;

            scanf("%d",&x)

            a[i]=x;

        }

    }

    void fun()

    {

        sort(a,a+n);

        int sum=0;

        for(int i=0;i<n-1;i++)//去重

        {

            if(a[i]!=a[i+1])

            {

                b[sum]=a[i];

                sum++;  //计数

            }

        }

        if(a[n-2]!=a[n-1])

        {

            b[sum]=a[n-1];

            cout<<sum+1<<endl;

            for(int i=0;i<sum+1;i++)

                printf("%d ",b[i]);

        }

        else

        {

            cout<<sum<<endl;

            for(int i=0;i<sum;i++)

                printf("%d ",b[i]);

        }

       

    }

    int main()

    {

        read();

        fun();

        return 0;

    }

    另外一种算法是:再开一个新的数组b,每次从a数组中往b数组中拿元素时,都检查一遍b数组中是不是已经有了这个元素,如果已经有了,那么就不放进去了。但是这样的算法的复杂度为O(n^2),明显没有上述算法时间复杂度低。

    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    总结报告的感想
    第14、15週PTA題目的處理
    PTA題目的處理(三)
    PTA题目的處理(四)
    PTA題目的處理(二)
    PTA題目的處理(一)
    國慶和中秋的學習成果
    剛進入大學一個月的總結和作業
    【接口平台】too many values to unpack
    【接口平台】生成静态模拟数据
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/13500752.html
Copyright © 2020-2023  润新知