题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int n;
int a[1000];
int b[1000];
while (cin >> n) { // 注意 while 处理多个 case
for(int i=0;i<1000;i++)
{
b[i]=0;
}
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int j=0;j<n;j++)
{
if(b[a[j]]==0) b[a[j]]=1;
}
for(int p=1;p<=1000;p++)
{
if (b[p]==1)
cout<<p<<endl;
}
}
}
// 64 位输出请用 printf("%lld")
这个解题方法不用排序也不用去重,对于提升变成能力没什么作用,只是思维上的开拓。用另一个数组b[1000]来表示0-1000中哪些数字出现过,哪些没有出现过,出现过置为1,没有出现过为0;如4出现过,b[4]=1;全部数字跑过一遍后再将b数组中值为1的序号输出。
深信服公司福利 827人发布