8 条题解

  • 2
    @ 2023-2-1 18:39:51

    一个比较容易理解的题解

    幸好数据范围小

    不过时间快一点,不用嵌套

    #include <iostream>
    #include <stack>
    #include <cmath>
    #include <vector>
    #include <string.h>
    #include <queue>
    #include <stdio.h>
    #include <iomanip>
    #include <cstdio>
    #include <algorithm>
    #define int long long
    using namespace std;
    const int N = 3e4 + 10;
    const int INF = 0x3f3f3f3f;
    int a[N]/*存储数据*/ ,n, no_once[N]/*不是第一次出现的*/;
    bool vis[N]/*是否出现过*/;//用bool省空间
    signed main()
    {
    	cin >> n;
        for(int i = 1; i <= n; i++)
        {
            cin >> a[i];
            if(vis[a[i]] == 0)//没访问过该数字
            {
                vis[a[i]] = 1;//标记为访问过
            }
            else
            {
                no_once[i] = 1;//不是第一次出现的,标记
            }
        }
        for(int i = 1; i <= n; i++)
        {
            if(no_once[i] == 0)//是第一次出现的
            {
                cout << a[i] << " ";//输出
            }
        }
    	return 0;
    }
    

信息

ID
1030
时间
1000ms
内存
128MiB
难度
6
标签
递交数
951
已通过
298
上传者