给定含有 n 个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。 输入 输入包含两行: 第一行包含一个正整数 n(1 ≤ n ≤ 20000),表示第二行序列中数字的个数。 第二行包含 n 个整数,整数之间以一个空格分开。每个整数大于等于 1、小于等于 5000。 输出 输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。c++
```cpp #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<int> numbers(n); vector<bool> isAppeared(5001, false); // 读取序列 for (int i = 0; i < n; i++) { cin >> numbers[i]; } // 去重输出 bool first = true; for (int i = 0; i < n; i++) { if (!isAppeared[numbers[i]]) { if (!first) { cout << " "; } cout << numbers[i]; isAppeared[numbers[i]] = true; first = false; } } cout << endl; return 0; } ``` 代码解释 1. 输入准备:首先读取输入的整数个数 `n`,然后使用 `vector<int>` 存储要处理的整数序列,使用 `vector<bool>` 来标记每个数是否已经出现过。`isAppeared` 数组的大小为 5001,因为输入的整数范围是 1 到 5000。 2. 读取序列:通过循环读取 `n` 个整数,并将它们存储在 `numbers` 向量中。 3. 去重输出:遍历 `numbers` 向量,对于每个数,如果它还没有出现过(即 `isAppeared[numbers[i]]` 为 `false`),则输出该数,并将 `isAppeared[numbers[i]]` 标记为 `true`,表示该数已经出现过。使用 `first` 变量来控制输出格式,确保第一个数前面没有多余的空格。 4. 输出结果:输出去重后的整数序列,每个整数之间用一个空格分隔。 复杂度分析 - 时间复杂度:$O(n)$,其中 $n$ 是输入序列的长度。因为只需要遍历一次输入序列。 - 空间复杂度:$O(1)$,因为 `isAppeared` 数组的大小是固定的 5001,不随输入序列的长度变化。 [2026-02-06 20:41:27 | AI问答 | 503点数解答]
- [字节豆包] 题目描述 在甜甜圈王国中,每颗甜甜圈都有一个甜度值 S 来衡量其甜蜜程度。根据甜度的不同,甜甜圈被评定为不同的等级,具体规则如下: 如果 S 在 0 到 25 之间(包含 0 和 25 ),输出 "普通甜甜圈"; 如果 S 在 26 到 50 之间(包含 26 和 50 ),输出 "美味甜甜圈"; 如果 S 在 51 到 75 之间(包含 51 和 75 ),输出 "极品甜甜圈"; 如果 S 在 76 到 99 之间(包含 76 和 99 ),输出 "绝世甜甜圈"; 如果 S 等于 100 ,输出 "传说甜甜圈"。 请根据给定的甜度值 S,输出对应的甜甜圈等级名称。 输入格式 一行一个整数 S,表示甜甜圈的甜度值。(243点数解答 | 2025-12-06 18:35:50)61
- 用java设计一个银行类和帐户类,成员变量包括账号、存款余额、交易记录等帐户信息,成员方法包括存款、取款、查询交易记录操作。( bank类中可包含多个账户,可增加其它操作如修改密码等,账户类中可实现添加,删除账户等操作) 运行效果如下: 1、存款业务 2、取款业务 3、显示交易记录 4、退出业务办理 请输入对应的数字选择相应的业务:1 你的余额为:0 请输入你要存款的数目:5000 你已存入:5000元 你的余额为:5000 请输入对应的数字选择相应的业务:2 你的余额为:5000 你可以取款的最多数目为:5000 请输入你要取款的数目:500 你已取走500元 你的余额为:4500 请输入对应的数字选择相应的业务:2 你的余额为:4500 你可以取款的最多数目为: 4500 请输入你要取款的数目:5000 取款失败! 请重新输入你的余额为:4500 请输入对应的数字选择相应的业务:3 交易记录 余额: 5000 星期四 三月08 11:46 : 10 cst 2018存入:5000元 余额: 4500 星期四 三月08 11 : 46 : 19 cst 20(363点数解答 | 2024-04-05 11:43:57)369
- 用java设计一个银行类和帐户类,成员变量包括账号、存款余额、交易记录等帐户信息,成员方法包括存款、取款、查询交易记录等操作。 运行效果如下: 1、存款业务 2、取款业务 3、显示交易记录 4、退出业务办理 请输入对应的数字选择相应的业务:1 你的余额为:0 请输入你要存款的数目:5000 你已存入:5000元 你的余额为:5000 请输入对应的数字选择相应的业务:2 你的余额为:5000 你可以取款的最多数目为:5000 请输入你要取款的数目:500 你已取走500元 你的余额为:4500 请输入对应的数字选择相应的业务:2 你的余额为:4500 你可以取款的最多数目为: 4500 请输入你要取款的数目:5000 取款失败! 请重新输入你的余额为:4500 请输入对应的数字选择相应的业务:3 交易记录 余额: 5000 星期四 三月08 11:46 : 10 cst 2018存入:5000元 余额: 4500 星期四 三月08 11 : 46 : 19 cst 2018取出:500元。 余额: 4000 星期四 三月08 11 : 46 : 34 cst(363点数解答 | 2024-04-05 11:49:01)334
- [字节豆包] 给定一个包含 个元素的**整数**序列 ,记作 。 求另一个包含 个元素的待定**整数**序列 ,记 ,使得 且 尽可能的小。 输入 第一行一个整数 ,表示序列元素个数。 第二行 个整数,表示序列 。 输出 一行一个整数,表示 的前提下 的最小值。 样例输入 复制 2 4059 -1782 样例输出 复制 99 提示 对于 的数据, , ,且 序列不全为 来源/分类(746点数解答 | 2026-01-24 13:14:40)31
- java设计一个银行类和帐户类,成员变量包括账号、存款余额、交易记录等帐户信息,成员方法包括存款、取款、查询交易记录等操作。( bank类中可包含多个账户,可增加其它操作如修改密码等,账户类中可实现添加,删除账户等操作) bank类: account record account_num login dismenu savemoney deposit displayrecord account类: name psd balance 运行效果如下: 1、存款业务 2、取款业务 3、显示交易记录 4、退出业务办理 请输入对应的数字选择相应的业务:1 你的余额为:0 请输入你要存款的数目:5000 你已存入:5000元 你的余额为:5000 请输入对应的数字选择相应的业务:2 你的余额为:5000 你可以取款的最多数目为:5000 请输入你要取款的数目:500 你已取走500元 你的余额为:4500 请输入对应的数字选择相应的业务:2 你的余额为:4500 你可以取款的最多数目为: 4500 请输入你要取款的数目:5000 取款失败! 请重新输入你的余额为:45(363点数解答 | 2024-04-05 11:42:16)360
- [字节豆包] 题目描述 Q老师在班级中管理着同学们的成绩。你需要帮助Q老师完成以下两项任务: 修改某个同学的成绩,需要给出学生编号 num (编号从 1 开始)和修改后的成绩 grade。 查看所有同学的成绩。 Q老师会给你所有同学的成绩,接下来会有若干操作,根据操作的类型来修改成绩或查看所有成绩。 输入格式 第一行输入整数 n,表示学生人数。 接下来输入 n 行,每行输入一个学生的成绩(整数)。 然后输入整数 m,表示接下来有 m 个操作。操作有两种: update 操作:修改某个学生的成绩,接下来输入学生编号 num( 1≤num≤n)和修改后的成绩 grade。 view_all 操作:输出当前所有学生的成绩。 输出格式 对于每个 view_all 操作,输出当前所有学生的成绩列表。(191点数解答 | 2025-12-20 20:55:41)46
- [字节豆包] Q老师在班级中管理着同学们的成绩。你需要帮助Q老师完成以下两项任务: 修改某个同学的成绩,需要给出学生编号 num (编号从 1 开始)和修改后的成绩 grade。 查看所有同学的成绩。 Q老师会给你所有同学的成绩,接下来会有若干操作,根据操作的类型来修改成绩或查看所有成绩。 输入格式 第一行输入整数 n,表示学生人数。 接下来输入 n 行,每行输入一个学生的成绩(整数)。 然后输入整数 m,表示接下来有 m 个操作。操作有两种: update 操作:修改某个学生的成绩,接下来输入学生编号 num( 1≤num≤n)和修改后的成绩 grade。 view_all 操作:输出当前所有学生的成绩。 输出格式 对于每个 view_all 操作,输出当前所有学生的成绩列表。(326点数解答 | 2025-12-27 20:48:12)40
- [字节豆包] 你要开始一场数轴旅行,初始时,你所在的位置为 � = 0 x=0 ,你想要去 � = � x=d 位置。 给定 � n 个整数 � 1 , � 2 , . . . , � � a 1 ,a 2 ,...,a n ,表示每次你可以往左移动 � � a i 个单位或往右移动 � � a i 个单位。 请问,最终能否到达 � = � x=d 位置?能则输出 Yes,不能输出 No。 输入 输入共两行: 第一行,两个整数 n,d 第二行,n 个正整数 输出 输出能否达到最终目标位置。 样例输入 复制 2 -4 6 8 样例输出 复制 Yes 提示 对于 30 % 30% 的数据,满足 1 ≤ � ≤ 10 1≤n≤10, 1 ≤ � � ≤ 10 1≤a i ≤10, − 20 ≤ � ≤ 20 −20≤d≤20。 对于 60 % 60% 的数据,满足 1 ≤ � ≤ 1 0 3 1≤n≤10 3 , 1 ≤ � � ≤ 1 0 3 1≤a i ≤10 3 , − 1 0 4 ≤ � ≤ 1 0 4 −10 4 ≤d(225点数解答 | 2026-01-23 19:51:03)28
- [字节豆包] 用Java输出:# 读取输入的三个浮点数 a, b, c a, b, c = map(float, input().split()) # 计算根的判别式 delta delta = b ** 2 - 4 * a * c if delta > 0: # 当 delta 大于 0 时,方程有两个不同的解 x1 = (-b + delta ** 0.5) / (2 * a) x2 = (-b - delta ** 0.5) / (2 * a) # 按照格式输出结果,保留两位小数 print(f"x1={x1:.2f} x2={x2:.2f}") elif delta == 0: # 当 delta 等于 0 时,方程有一个解 x1 = -b / (2 * a) # 按照格式输出结果,保留两位小数 print(f"x1={x1:.2f}") else: # 当 delta 小于 0 时,方程无解 print("No answer") (329点数解答 | 2025-12-10 22:05:16)32
- [阿里通义] 一个 5×6 的迷宫样例如下: 要求给出从起点(1,1)到终点(3,4)的路径。 为了处理方便,保证最外圈全都为障碍物。 扩展到一般情况,一个 m×n 的迷宫,要求输出从起点(1,1)到终点(m-2,n-2)的路径。 测试实例保证路径是唯一的。 该题要求自行设计一个栈来做。如果设计的是顺序栈,则保证栈的大小不超过 200 个元素。 输入 第一行为两个整数 m 和 n,表示 m×n 的迷宫。 接下来有 m 行,每行有 n 个数(n 个数之间用空格间隔,值 = 0 表示可以通行,值 = 1 表示为障碍物) 输出 输出从起点到终点的路径,每个坐标占一行,坐标间的行号和列号用一个空格间隔。具体格式可参考样例。c++ 源代码(732点数解答 | 2024-11-03 02:34:53)500
- [DeepSeek] 给定长为 n 的整数序列 a。 您可以对这个序列进行若干次(可以为 0 次)操作,每次操作形如: 选定满足 1≤i,j≤n 的下标 i 和 j,将 a i 赋值为 a i +1,同时将 a j 赋值为 a j −1。i 和 j 不能相同。 求使得前缀和之和等于后缀和之和的最小操作次数。 也就是说,令 s i =a 1 +a 2 +⋯+a i ,t i =a i +a i+1 +⋯+a n ,有 s 1 +s 2 +⋯+s n =t 1 +t 2 +⋯+t n 。 注意,a i 可以变为负数。 输入格式 第一行一个整数 n。 第二行用空格隔开的 n 个整数,表示 a 序列。 输出格式 输出一行一个整数表示最小操作次数。 若无解,输出 −1。(1329点数解答 | 2025-05-25 17:27:01)206
- [DeepSeek] 给定长为 n 的整数序列 a。 您可以对这个序列进行若干次(可以为 0 次)操作,每次操作形如: 选定满足 1≤i,j≤n 的下标 i 和 j,将 a i赋值为 a i+1,同时将 a j赋值为 a j−1。i 和 j 不能相同。 求使得前缀和之和等于后缀和之和的最小操作次数。 也就是说,令 s i=a 1+a 2+⋯+a i,t i=a i+a i+1+⋯+a n,有 s 1+s 2+⋯+s n=t 1+t 2+⋯+t n。 注意,a i可以变为负数。 输入格式 第一行一个整数 n。 第二行用空格隔开的 n 个整数,表示 a 序列。 输出格式 输出一行一个整数表示最小操作次数。 若无解,输出 −1。c++(532点数解答 | 2025-05-25 17:27:47)230