输入整数排序去重问题的C++代码实现及分析
### 👨💻题目分析 题目要求是输入`n`个在`1~1000`范围内的整数,将这些整数从小到大排序并且去重后输出。可以使用数组进行计数,因为数字范围是`1~1000`,数组的下标就可以表示对应的数字,数组元素的值表示该数字出现的次数。 ### 👨💻代码实现 ```cpp #include <iostream> using namespace std; // 定义一个长度为1001的数组用于计数,因为数字范围是1~1000 int n, x, a[1001]; int main() { // 读取输入的整数n,表示接下来要输入的数字个数 cin >> n; // 循环n次,读取每个数字 for (int i = 1; i <= n; i++) { // 读取当前数字x cin >> x; // 该数字对应的数组元素加1,表示该数字出现次数增加 a[x]++; } // 标记是否是第一个输出的数字,用于控制输出格式 bool first = true; // 遍历数组,从下标1到1000 for (int i = 1; i <= 1000; i++) { // 如果该下标的数组元素值大于0,说明该数字出现过 if (a[i] > 0) { // 如果不是第一个输出的数字,先输出一个空格进行分隔 if (!first) { cout << " "; } // 输出该数字 cout << i; // 标记已经不是第一个输出的数字了 first = false; } } // 输出换行符 cout << endl; return 0; } ``` ### 👨💻复杂度分析 - **时间复杂度**:代码中读取输入的时间复杂度为$O(n)$,遍历数组并输出结果的时间复杂度为$O(1000)$,综合来看时间复杂度为$O(n)$。 - **空间复杂度**:代码中使用了一个长度为`1001`的数组,空间复杂度为$O(1)$。 ######[AI问答 | 535点数解答 | 2026-04-04 20:04:41]
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)30
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)64
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)72
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)65
- 求解特定条件下整数序列的最小值:算法分析与代码实现(字节豆包 | 746点数解答 | 2026-01-24 13:14:40)60
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)319
- C语言:按序读入浮点数、整数、字符并按新顺序输出,附代码实现 (字节豆包 | 108点数解答 | 2024-09-30 22:54:08)334
- C语言:按特定顺序读入并输出浮点数、整数和字符,精确控制小数位(字节豆包 | 155点数解答 | 2024-10-08 22:06:18)328
- C++与Python:按特定顺序输入输出数据并保留浮点数两位小数的实现(字节豆包 | 168点数解答 | 2024-10-08 22:07:03)336
- C语言:按特定顺序读入再输出,含浮点数精确格式处理(字节豆包 | 105点数解答 | 2024-10-08 22:07:29)343