题解 | #明明的随机数#

明明的随机数

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的序号输出。

全部评论

相关推荐

小博真爱学习:真心建议别找太mini的
点赞 评论 收藏
分享
炫哥_:为什么都读硕士了?项目还是网上的项目(真心发问)
最后再改一次简历
点赞 评论 收藏
分享
06-04 19:53
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务