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;
    }
    
  • 1
    @ 2023-3-25 11:32:18

    这道题用哈希表轻松解决 #include <iostream> #include <unordered_set> using namespace std;

    int main() { int n; cin >> n; int a[n]; for (int i = 0; i < n; i++) cin >> a[i];

    unordered_set<int> s; // 使用哈希表来存储已经出现的数字
    for (int i = 0; i < n; i++)
    {
        if (s.count(a[i]) == 0) // 如果该数字没有出现过,则输出并加入到哈希表中
        {
            cout << a[i] << " ";
            s.insert(a[i]);
        }
    }
    
    return 0;
    

    }

    • 1
      @ 2023-1-14 17:29:59
      #include<iostream>
      #include<bits/stdc++.h>
      #include<iomanip>
      #include<math.h>
      #include<algorithm>
      #include<cstring>
      using namespace std;
      int main(){
      	int n,a[100005];
      	cin>>n;
      	for(int i=0;i<n;i++){
      		cin>>a[i];
      	}
      	for(int i=0;i<n;i++){
      		for(int j=i+1;j<n;j++){
      			if(a[i]==a[j]){
      				a[j]=0;
      			}
      		} 
      	}
      	for(int i=0;i<n;i++){
      		if(a[i]!=0){
      			cout<<a[i]<<" ";
      		}
      	}
      }
      
      • 0

        include<bits/stdc++.h>
        using namespace std;
        const int N=1e5+10;
        const int A=0x3f3f3f3f;
        int a,n;
        bool b[10000];
        int main()
        {
        	cin>>n;
        	for(int i=1;i<=n;i++)
        	{
        		cin>>a;
        		if(b[a]==0)
        		{
        			cout<<a<<' ';
        		}
        		b[a]=1;
        	}
        	return 0;
        }
        
        • 0
          @ 2024-6-30 21:36:29

          看来好像没人用我这种? 简简单单,看看吧:

          #include<bits/stdc++.h>
          using namespace std;
          const int N=1e5+10;
          const int A=0x3f3f3f3f;
          int a,n;
          bool b[10000];
          int main()
          {
          	cin>>n;
          	for(int i=1;i<=n;i++)
          	{
          		cin>>a;
          		if(b[a]==0)
          		{
          			cout<<a<<' ';
          		}
          		b[a]=1;
          	}
          	return 0;
          }
          
          • 0
            @ 2024-3-12 19:16:54
            #include <bits/stdc++.h>
            using namespace std;
            const int N = 1e7 + 10;
            const int INF = 0x3f3f3f3f;
            int a[N],n,maxx; 
            int main()
            {
            	cin >> n;
            	for(int i = 1;i <= n;i++)
            	{
            		cin >> a[i];
            		bool P = 0;
            		for(int j = 1;j < i;j++)
            		{
            			if(a[i]==a[j])
            			{
            				P = 1;
            				break; 
            			}
            		} 
            		if(P == 0)
            		{
            			cout<<a[i]<<" ";
            		}
            	}
            	return 0;
            }
            
            
            • 0
              #include <bits/stdc++.h>
              using namespace std;
              const int N=1e7+10;
              const int INF=0x3f3f3f3f;
              int a[N],n,maxx; 
              int main()
              {
              	cin>>n;
              	for(int i=1;i<=n;i++)
              	{
              		cin>>a[i];
              		bool f=0;
              		for(int j=1;j<i;j++)
              		{
              			if(a[i]==a[j])
              			{
              				f=1;
              				break; 
              			}
              		} 
              		if(f==0)
              		{
              			cout<<a[i]<<" ";
              		}
              	}
              	return 0;
              }
              

              数据小,能AC

              • 0
                @ 2023-3-11 21:13:53
                #include<iostream>
                using namespace std;
                bool isappe(int* arr,int target,int index)
                {
                    for(int i=0;i<index;i++)if(arr[i]==target)return true;
                    return false;
                }
                int main()
                {
                    int n;
                    cin>>n;
                    int arr[n];
                    for(int i=0;i<n;i++)
                    {
                        cin>>arr[i];
                        if(isappe(arr,arr[i],i))arr[i]=0;
                    }
                    for(int i=0;i<n;i++)if(arr[i]!=0)cout<<arr[i]<<' ';
                    return 0;
                }
                
                
                • 1

                信息

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