题解 | #HJ3 明明的随机数#
明明的随机数
http://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
题目有说明输入数据的大小范围为 [1, 500]
所以可以记录输入数据中的最大值,建立以最大值为长度的数组,从小到大标记有数的元素,即可从小到大输出不重复的数
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int nums[n];
memset(nums, 0, sizeof(int) * n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
int maxNum = 0;
for (int i = 0; i < n; i++) {
if (nums[i] > maxNum) {
maxNum = nums[i];
}
}
int uniqueNums[maxNum];
memset(uniqueNums, 0, sizeof(int) * maxNum);
for (int i = 0; i < n; i++) {
uniqueNums[nums[i]-1] = nums[i];
}
for (int i = 0; i < maxNum; i++) {
if (uniqueNums[i] != 0) {
printf("%d\n", uniqueNums[i]);
}
}
return 0;
}