C++序列去重算法实现与解析
```cpp #include <iostream> #include <vector> #include <unordered_set> using namespace std; int main() { int n; cin >> n; vector<int> nums(n); for (int i = 0; i < n; ++i) { cin >> nums[i]; } unordered_set<int> seen; vector<int> result; for (int num : nums) { if (seen.find(num) == seen.end()) { seen.insert(num); result.push_back(num); } } for (size_t i = 0; i < result.size(); ++i) { if (i > 0) cout << " "; cout << result[i]; } cout << endl; return 0; } ``` 🔍 **代码解析** - 使用 `unordered_set` 记录已出现的数字,实现 O(1) 时间复杂度的查找。 - 遍历输入序列,若数字未出现过,则加入结果向量并记录。 - 按顺序输出结果向量中的数字,保持原始顺序。 ⚙️ **复杂度分析** - 时间复杂度:O(n),遍历一次输入序列。 - 空间复杂度:O(n),存储结果和哈希集合。 💡 **注意事项** - 输入规模 n ≤ 20000,整数范围 1~5000,哈希集合足够高效。 - 输出时注意空格格式,最后一个数字后无空格。 - 使用 `vector` 存储结果,确保输出顺序与输入一致。 ######[AI问答 | 333点数解答 | 2026-03-23 12:41:36]
- 求解特定条件下整数序列的最小值:算法分析与代码实现(字节豆包 | 746点数解答 | 2026-01-24 13:14:40)55
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)278
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)308
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)313
- iOS开发揭秘:序列(Sequence)索引是否从0开始?实例为你解答!(百度文心 | 187点数解答 | 2023-11-09 17:44:38)244
- MATLAB实现r5(n)序列离散傅立叶变换及补零至20长序列DFT计算 (GPT | 339点数解答 | 2024-10-28 16:31:47)274
- 求解整数序列操作最小次数:让前缀和之和等于后缀和之和(DeepSeek | 1329点数解答 | 2025-05-25 17:27:01)226
- C++求解:使整数序列前缀和之和等于后缀和之和的最小操作次数(DeepSeek | 532点数解答 | 2025-05-25 17:27:47)253
- 32位二进制IP地址转点分十进制:Python代码实现及示例(DeepSeek | 102点数解答 | 2026-01-20 13:53:38)41
- C++:轻松判断 int 型整数 32 位内码是否对称,附代码详解!(字节豆包 | 560点数解答 | 2026-01-23 19:44:43)30
- Python切片操作巧解经典算法:二维数组90°旋转(阿里通义 | 205点数解答 | 2023-10-31 11:05:29)335