题解 | 明明的随机数
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
n = int(input())
seen = [False] * 501 # 索引1到500
for _ in range(n):
x = int(input())
seen[x] = True
for i in range(1, 501):
if seen[i]:
print(i)
这个问题是典型的“去重+排序”,可以用多种方法解决。由于数据范围很小(1 ≤ ai ≤ 500),最简单的做法是使用一个布尔数组标记每个数字是否出现过,然后按顺序输出出现过的数字。
思路说明
- 读入整数 n。
- 用一个大小为 501 的布尔数组(或集合)记录每个数字是否出现过。
- 读入 n 个数字,将对应位置标记为 true。
- 从小到大遍历 1 到 500,如果出现过就输出。


查看5道真题和解析