zoukankan      html  css  js  c++  java
  • 1988-B. 有序集合

    描述

    在C++里,有一个神奇的东西,叫做STL,这里提供了很多简单好用的容器,用来实现常用又很难书写的数据结构,如栈(stack)等。其中,有一个容器叫set,译作“有序集合”。首先,这是一个集合,所以不存在相同的元素,其次,集合中的元素按从小到大排列。 现在,需要你把一列不符合“有序集合”要求的整数规范化,通过以下两个步骤: 1、去重:去掉重复的元素 2、排序:按从小到大顺序将元素排序 请问,最终得到的有序集合是怎样的呢?

    输入

    第一行包含一个正整数T (1≤T≤100),表示有T组测试用例。 每组用例有两行,第一行包含一个正整数N(1≤N≤100),第二行有N个正整数,以空格分隔,表示未规范成“有序集合”的数列。每个正整数不超过1000.

    输出

    每组用例输出一行,表示规范后的“有序集合”,数字以空格分隔。

    样例输入

    2

    4

    1 25 640 1000

    10

    20 40 32 67 40 20 89 329 400 15

    样例输出

    1 25 640 1000

    15 20 32 40 67 89 329 400

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
        //freopen("a.txt","r",stdin);
        int t;
        cin>>t;
        while(t--)
        {
            int n,*a,i,j;
            cin>>n;
            a=(int *)malloc(n*sizeof(int));
            memset(a,0,sizeof(a));
            for(i=0;i<n;i++)
                cin>>a[i];
            for(i=0;i<n;i++)
                for(j=i;j<n;j++)
                    if(a[i]>a[j])
                        swap(a[i],a[j]);
            for(i=0;i<n;i++)
            {
                while(a[i]==a[i+1])
                {
                    for(j=i;j<n;j++)
                        a[j]=a[j+1];
                    n--;
                }
            }
            for(i=0;i<n-1;i++)
                cout<<a[i]<<" ";
            cout<<a[n-1]<<endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    计算图像数据集RGB各通道的均值和方差
    多个数组的排列组合
    n个数中选取m个数,并全排列
    设计模式——代理模式
    简易的工厂模式
    多态
    final关键字特点
    this和super的区别
    重载与重写的区别
    Linux下安装MongoDB
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3438671.html
Copyright © 2011-2022 走看看