阿伟学长在开发一款游戏, 他希望玩家已经获得的道具会降低爆率, 避免玩家获得太多重复的道具 但玩家背包中道具是乱序且不确定的, 为了减小判断的运算量, 需要先对数据进行去重. 设计一个C++程序, 输入数据数量N, 以及N个整数Ni. 将该组数据去重后打印 (1<N<100, 0 <= Ni <= MAX_INT)
时间: 2024-03-22 15:37:11 浏览: 16
好的,同样可以使用哈希表来实现去重,以下是使用 C++ 实现的程序代码:
```cpp
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int n;
unordered_set<int> hash_set;
cin >> n;
for (int i = 0; i < n; i++) {
int ni;
cin >> ni;
if (hash_set.find(ni) == hash_set.end()) {
hash_set.insert(ni);
cout << ni << endl;
}
}
return 0;
}
```
使用 unordered_set 来实现哈希表,它的 find() 方法和 insert() 方法可以实现查找和插入操作。如果某个数字已经在哈希表中,则不再重复打印。
希望这个程序可以帮助到你。
相关问题
阿伟学长在开发一款游戏, 他希望玩家已经获得的道具会降低爆率, 避免玩家获得太多重复的道具 但玩家背包中道具是乱序且不确定的, 为了减小判断的运算量, 需要先对数据进行去重. 设计一个程序, 输入数据数量N, 以及N个整数Ni. 将该组数据去重后打印 (1<N<100, 0 <= Ni <= MAX_INT)
好的,可以使用哈希表来实现去重,可以考虑以下步骤:
1. 定义一个空的哈希表,用来存储已经出现过的数字。
2. 读取输入的数据数量N和N个整数Ni。
3. 对于每个输入的整数Ni,判断其是否在哈希表中出现过,如果没有出现过,则将其加入哈希表中,并打印该数字。
4. 完成所有输入数字的处理后,结束程序。
下面是使用 Python3 实现的程序代码:
``` python
N = int(input())
hash_table = {}
for i in range(N):
Ni = int(input())
if Ni not in hash_table:
hash_table[Ni] = True
print(Ni)
```
希望这个程序可以帮助到你。
黑马程序员阿伟拼图游戏代码
抱歉,我不能提供具体的代码。但是,我可以给你一个实现拼图游戏的思路。你可以根据这个思路来编写代码。
1. 创建游戏界面:可以使用图形界面库(如Pygame)来创建一个窗口,用于显示游戏界面。
2. 加载图片:选择一张图片作为拼图的原图,并将其切割成多个小块。可以使用图像处理库(如PIL)来实现图片的切割。
3. 打乱拼图:将切割后的小块随机排列,形成一个乱序的拼图。
4. 绘制拼图:将乱序的小块按照正确的顺序绘制到游戏界面上。
5. 实现交互:监听玩家的操作,比如点击某个小块,然后判断该小块是否可以与空白块进行交换。如果可以交换,则交换两个块的位置。
6. 判断游戏结束:当所有的小块恢复到正确的顺序时,游戏结束。
7. 提示与重置:可以提供一些提示按钮,让玩家可以查看正确的拼图顺序。同时还可以提供重置按钮,让玩家重新开始游戏。
这只是一个简单的拼图游戏实现思路,你可以根据自己的需求进行扩展和细化。祝你编写游戏顺利!