酷代码 AI
菜单
服务商

给定含有 n 个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。 输入 输入包含两行: 第一行包含一个正整数 n(1 ≤ n ≤ 20000),表示第二行序列中数字的个数。 第二行包含 n 个整数,整数之间以一个空格分开。每个整数大于等于 1、小于等于 5000。 输出 输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。c++

```cpp #include <iostream> #include <vector> #include <unordered_set> int main() { int n; std::cin >> n; std::vector<int> nums(n); std::unordered_set<int> uniqueNums; // 读取输入的整数序列 for (int i = 0; i < n; ++i) { std::cin >> nums[i]; } // 遍历序列,输出不重复的数字 for (int i = 0; i < n; ++i) { if (uniqueNums.find(nums[i]) == uniqueNums.end()) { std::cout << nums[i]; uniqueNums.insert(nums[i]); if (i < n - 1) { std::cout << " "; } } } std::cout << std::endl; return 0; } ``` 代码解释 1. 输入读取:先读取整数`n`,它代表序列中数字的数量。接着用`std::vector<int>`存储这`n`个整数。 2. 去重操作:利用`std::unordered_set<int>`存储已经出现过的数字。在遍历输入的整数序列时,检查当前数字是否已经在`unordered_set`中。若不在,说明这是该数字首次出现,将其输出并插入到`unordered_set`中。 3. 输出格式:每个不重复的数字之间用一个空格分隔,最后换行。 [2026-02-06 20:42:50 | AI问答 | 353点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多