C++实现非负整数排序去重输出(含标志数组与set两种解法)
## 🧩 题目解析 本题目要求读取 n 个非负整数,排序后去重输出。数值范围 0~1000 很小,可直接用标志数组或 `set` 解决。 ## 💻 C++ 实现方案 ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; // 利用范围 0~1000 的特性,标志数组自动去重 bool exist[1001] = {false}; for (int i = 0; i < n; i++) { int x; cin >> x; exist[x] = true; } // 从小到大输出存在的数 for (int i = 0; i <= 1000; i++) { if (exist[i]) { cout << i << " "; } } cout << endl; return 0; } ``` ## 🛠 简化版(使用 set) ```cpp #include <iostream> #include <set> using namespace std; int main() { int n; cin >> n; set<int> s; for (int i = 0; i < n; i++) { int x; cin >> x; s.insert(x); } for (int v : s) { cout << v << " "; } cout << endl; return 0; } ``` ## 🧠 复杂度分析 标志数组法时间 O(n + 1000),空间 O(1000),常数极小。`set` 方法 O(n log n),适合更大数值范围。本题范围固定,首选标志数组。 ## 📝 关键点 - 输入可能包含重复数据,但标志数组天然处理去重。 - 输出末尾空格可接受,若需严格格式可判断 `i` 是否为最后一个有效值。 - 注意 `bool` 数组初始化为 `false`,这是 C++ 数组的默认行为(全局变量)或显式初始化(局部变量如上例)。 ######[AI问答 | 480点数解答 | 2026-08-20 22:05:02]
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)155
- sys_module 表结构与 Java 实体类 SysModule 详解(字节豆包 | 252点数解答 | 2025-04-09 10:54:17)254
- SQL:[pr_createdtables]存储过程代码解析及表创建准备 (字节豆包 | 33点数解答 | 2024-08-29 15:34:33)399
- SQL 修正:创建带唯一索引的 py_plan_opportunity_point 表(阿里通义 | 328点数解答 | 2024-09-04 16:07:48)355
- "MySQL: Creating the 'py_plan_opportunity_point' Table with Unique Location Codes"(阿里通义 | 188点数解答 | 2024-09-04 16:08:40)472
- MySQL:完整创建 py_plan_opportunity_point 表及字段详解(阿里通义 | 348点数解答 | 2024-09-04 16:09:36)321
- "SQL条件判断下的角色数据更新操作揭秘"(GPT | 51点数解答 | 2024-10-22 11:24:35)343
- "Enhanced SQL Script for SRO MMORPG Database: Conditional Updates, Transactions & Logging"(阿里通义 | 969点数解答 | 2024-10-22 11:26:02)440
- 巧用集合:计算输入正整数中等于两数之和的数量(字节豆包 | 558点数解答 | 2025-11-24 19:19:24)80
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)562
- Python 实现:四位数重组求最大最小数差值(字节豆包 | 144点数解答 | 2026-02-01 12:49:54)78
- Python 代码求解:小明当选 Y 国总统至少需多少选民支持?(字节豆包 | 207点数解答 | 2026-02-01 12:51:14)79