这道题不知道为什么一开始WA了两发......
请看到的大神指点一下
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=1e3 + 5;
4
5 int a[maxn];
6 int sum=0;
7
8 int main()
9 {
10 int n;
11 scanf("%d",&n);
12 for(int i=1;i<=n;i++) scanf("%d",&a[i]);
13 sort(a+1,a+n+1);
14 for(int i=1;i<=n;i++)
15 {
16 if(a[i] == a[i+1])
17 {
18 for(int j=i;j<=n;j++) swap(a[j],a[j+1]);
19 n--;
20 }
21 }
22 printf("%d
",n);
23 for(int i=1;i<=n;i++) printf("%d ",a[i]);
24 printf("
");
25 return 0;
26 }
最后改回了“桶排序” 还是AC了!!
AC代码:
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=1e5 + 5;
4
5 int a[maxn];
6 int used[maxn];
7 int sum=0;
8
9 int main()
10 {
11 int n;
12 scanf("%d",&n);
13 for(int i=1;i<=n;i++)
14 {
15 scanf("%d",&a[i]);
16 if(!used[a[i]])
17 {
18 used[a[i]]++;
19 sum++;
20 }
21 else a[i]=0;
22 }
23 sort(a+1,a+n+1);
24 printf("%d
",sum);
25 for(int i=1;i<=n;i++) if(a[i]) printf("%d ",a[i]);
26 printf("
");
27 return 0;
28 }
不过我觉得,这道题还可以用set,这样都不需要去重了!!很高级。
因为不太熟悉,就懒得去写了/cy /cy;