10205 整数去重

题目描述

给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。

输入格式

输入包含两行:

第一行包含一个正整数n(1 ≤ n ≤ 20000),表示第二行序列中数字的个数;

第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于10、小于等于5000。

输出格式

输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。

样例

输入 #1

5
10 12 93 12 75
输出 #1

10 12 93 75
数据范围与提示 分类标签

[一维数组]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

int a[20001];
int b[5001];
int c;


// The main procedure
int main() {
  cin>>c;
  for (int i = 1; i <= c; i++) {
    cin>>a[i];
  }
  for (int i = 1; i <= c; i++) {
    if (b[a[i]] == 0) {
      if (i > 1) {
        cout<<" ";
      }
      cout<<a[i];
      b[a[i]] = 1;
    }
  }
  return 0;
}

Blockly题解代码图片