Codeforces Round #481 (Div. 3) A. Remove Duplicates

本文提供 Codeforces Round #481 (Div.3) A题的解题思路及代码实现。该题要求从给定的整数序列中删除重复元素,并按原顺序逆序输出。通过使用辅助数组标记已访问过的数字来实现。

Codeforces Round #481 (Div. 3) A. Remove Duplicates

题目地址:http://codeforces.com/contest/978/problem/A

 

题解:给一串长度为n的数组,然后删去相同的数字(从右往左)。

 

方法:题目n和数组ai给的范围都很小,所以可以放一个vis[1500]的数组表示1~1000内的数字是否被访问过。从右到左倒着访问,然后再把out数组倒着输出。

 

代码:(代码较丑,欢迎大佬们批评指正)

 1 #include<cstdio>
 2 #include<cmath>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<string>
 6 #include<iostream>
 7 #include<map>
 8 #include<vector>
 9 #include<set>
10 #include<queue>
11 using namespace std;
12 const int inf = 0x3f3f3f3f;
13 int main()
14 {
15     int n;
16     int a[60], vis[1500] = {0},out[60];
17     scanf("%d", &n);
18     for (int i = 0; i < n; i++)
19     {
20         scanf("%d", &a[i]);
21     }
22     int len = 0;
23     for (int i = n - 1; i >= 0; i--)
24     {
25         if (vis[a[i]] == 0)
26         {
27             out[len] = a[i];
28             len++;
29             vis[a[i]] = 1;
30         }
31     }
32     printf("%d\n", len);
33     for (int i = len-1 ; i >= 0; i--)
34     {
35         printf("%d", out[i]);
36         if (i != 0)
37             printf(" ");
38         else
39             printf("\n");
40     }
41     return 0;
42 }

 

posted @ 2018-05-15 15:22 Tangent_1231 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值