9 solutions

  • 3
    @ 2023-11-23 21:21:18
    #include<bits/stdc++.h>
    using namespace std;
    int n,a[105];
    int main(){
    	cin>>n;
    	for(int i=0;i<n;i++) cin>>a[i];
    	sort(a,a+n);
    	int x=n;//用x记录n 
    	for(int i=0;i<x;i++){
    		if(a[i]==a[i+1]){
    			a[i]=0;//不用删,标0即可 
    			n--;
    		}
    	}
    	cout<<n<<endl;
    	for(int i=0;i<x;i++) if(a[i]) cout<<a[i]<<' ';
    	return 0;//不必多言 
    }
    

    看了半天没发现怎么用struct

  • 2
    @ 2023-10-28 13:32:07
    set(集合)是一种去重,排序的STL数据容器
    

    所以简简单单:

    #include<iostream>
    #include<set>
    using namespace std;
    int main()
    {
    	set<int>s;//创建集合
    	int t;
    	cin>>t;
    	for(int i=0;i<t;i++)
    	{
    		int x;
    		cin>>x;
    		s.insert(x);//入集合
    	}
    	cout<<s.size()<<endl;//输出集合长度
    	for(set<int>::iterator i=s.begin();i!=s.end();i++)
    	{
    		//因为不能用[]索引,所以用指针迭代
    		cout<<*i<<" ";//*解释数据
    	}
    }
    
    • 1
      @ 2024-12-20 20:52:15

      桶排序

      #include<bits/stdc++.h>
      using namespace std;
      int ppp[1001],a[100];
      int main(){
      	int n,x,sum=0;
      	cin>>n;
      	for(int i=0;i<n;i++){
      		cin>>x;
      		ppp[x]++;
      	}
      	for(int i=1;i<1001;i++)if(ppp[i]>0)a[sum++]=i;
      	cout<<sum<<endl;
      	for(int i=0;i<sum;i++)cout<<a[i]<<" ";
      	return 0;
      }
      
      • 1
        @ 2023-10-24 19:58:48

        没用结构体

        using namespace std;
        int hasp[1100];
        int arr[110];
        int ans[110];
        int main(){
        	int n,aaa;
        	cin>>n;
        	aaa=n;
        	for(int i=0;i<n;i++) cin>>arr[i];
        	sort(arr,arr+n);
        	for(int i=0;i<n;i++) if(arr[i+1]==arr[i]) aaa--;
        	cout<<aaa<<endl;
        	for(int i=0;i<n;i++){
        		 if(hasp[arr[i]]==0) cout<<arr[i]<<' ';
        		 hasp[arr[i]]=1;
        	} 
        	return 0;
        }
        
        • 1
          @ 2023-10-24 19:10:57

          桶排

          using namespace std;
          int main()
          {
          	int n,a[1001]={},temp,cnt=0;
          	cin >>n;
          	for (int i=0;i<n;i++)
          	{
          		cin >> temp;
          		a[temp]++;
          	}
          	for (int i=0;i<1000;i++)
          	{
          		if(a[i])
          		{
          			cnt++;
          		}
          	}
          	cout <<cnt <<endl;
          	for (int i=0;i<1000;i++)
          	{
          		if(a[i])
          		{
          			cout << i << " ";
          		}
          	}
           }
          
          • 0
            @ 2024-10-22 19:28:16
            #include<bits/stdc++.h>
            using namespace std;
            bool david[1001];
            int n,x,cnt;
            int main(){
            	cin>>n;
            	while(n>0){
            		cin>>x;
            		david[x]=true;
            		n--;
            	}
            	for(int i=0;i<=1000;i++){
            		if(david[i]) cnt++; 
            	}
            	cout<<cnt<<endl;
            	for(int i=0;i<=1000;i++){
            		if(david[i]) cout<<i<<" ";
            	}
            	return 0;
            }
            
            
            • @ 2024-10-22 19:29:24

              绝对简单易懂,不懂我吃

          • 0
            @ 2024-1-21 10:31:57
            #include<bits/stdc++.h>
            using namespace std;
            int n;
            int a[105];
            int main(){
            	cin>>n;
            	for(int i=0;i<n;i++) cin>>a[i];
            	int s=n;
            	sort(a,a+n);
            	for(int i=0;i<n-1;i++){
            		if(a[i]==a[i+1]) a[i+1]=0,s--;
            	}
            	cout<<s<<endl;
            	for(int i=0;i<n;i++){
            		if(a[i]) cout<<a[i]<<' ';
            	}
            	return 0;
            }
            

            比从前更短

            • 0
              @ 2023-11-14 13:06:19
              #include <bits/stdc++.h>
              using namespace std;
              int a[105],cnt;
              int main(int argc, char **argv){
              	int n;
              	cin >> n;
              	for (int i = 0;i < n;i++){
              		cin >> a[i];
              	}
              	sort(a,a + n);
              	int o = 0,c;
              	for (int i = 0;i < n;i++){
              		c = a[i];
              		if (c != o){
              			cnt++;
              			o = c;
              		}
              	}
              	printf("%d\n",cnt);
              	o = 0;
              	for (int i = 0;i < n;i++){
              		c = a[i];
              		if (c != o){
              			printf("%d ",c);
              			o = c;
              		}
              	}
              	return 0;
              }
              
              • -1
                @ 2024-1-6 12:01:01
                #include <iostream>
                #include <algorithm>
                using namespace std;
                int n,sum=0,x,b[1005];
                int main(){
                	cin>>n;
                	for(int i=1;i<=n;i++){
                		cin>>x;if(b[x]) continue;//出现过
                		b[x]++,sum++;
                	}
                	cout<<sum<<endl;
                	for(int i=1;i<=1000;i++) if(b[i]==1) cout<<i<<" ";
                	return 0;
                }
                

                没必要用STL 的set 来做

              • 1

              Information

              ID
              670
              Time
              1000ms
              Memory
              256MiB
              Difficulty
              5
              Tags
              # Submissions
              130
              Accepted
              54
              Uploaded By