问题标题: 酷町堂:1479.去重排序

0
0
已解决
李语彤
李语彤
中级守护
中级守护

1479   去重排序(Sort)

题目描述 Description

对于给定的n个随机排列的整数(可能会有重复),若其中含有重复相同的整数只保留一个,剩下的数中按从小到大排序输出。

#include<iostream>
#include<cstdio>
using namespace std;
long long int n,a[100000],s=0;
int main()
{
    cin>>n;
    for (int i=0;i<n;i++)
    cin>>a[i];
    s=n;
    for (int i=0;i<n-1;i++)
        for (int j=0;j<n-i-1;++j)
            if (a[j]>a[j+1])
                 swap(a[j],a[j+1]);
    for (int i=0;i<n-1;i++)
        if (a[i]==a[i-1]) 
            s--;
    cout<<s-1<<endl;
    for (int i=0;i<n;++i)
        if (a[i]!=a[i-1]||i==0)
        cout<<a[i]<<" ";
    return 0;
}
为什么错了?求解。


0
已采纳
徐铭凯
徐铭凯
资深守护
资深守护

既然是c++党,你应该知道传说中的~~~

STL大法:

头文件:algorithm

写法:sort(a+1,a+n+1)

去重直接判断a[i]和a[i-1]是否相等 如果不相等输出

(注意,a[1]直接输出)

0
程之行
程之行
高级守护
高级守护

不要写选排,直接调sort(a+1,a+n+1)

去重用桶写快一点

0
袁翊凡
袁翊凡
新手光能
新手光能

何必用选排呢,直接用sort就行了;

0
袁朝阳
袁朝阳
新手守护
新手守护

用快排,sort,别忘algorithm头文件

0
宫西诚
宫西诚
修练者
修练者

sort(a+1,a+n+1);

快排大法

头文件万能既可

0
周建勋
周建勋
中级光能
中级光能

swap(a[j],a[j+1])???what???

直接用:sort(a+1,a+n+1)

保证AC。

万能头文件:#include<bits/stdc++.h>

0
我要回答