列表

详情


BC125. 序列中整数去重

描述

输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。

输入描述

输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。

输出描述

输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。

示例1

输入:

5
10 12 93 12 75

输出:

10 12 93 75

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 308KB, 提交时间: 2021-09-14

#include<stdio.h>
int main()
{
    int i,j,n;
    int a[100]={0};
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if((a[i]^a[j])==0)
                a[j]=0;
        }
    }
    for(i=0;i<n;i++)
    {
        if(a[i]!=0)
        {
            printf("%d ",a[i]);
        }
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 352KB, 提交时间: 2020-08-07

#include<stdio.h>
int main()
{
			int n,i,j;
			int a[100]={0};
			int* p =a;

			scanf("%d",&n);

			for(i=0;i<n;i++)
			scanf("%d",&a[i]);

			for(i=0;i<n;i++)
						for(j=1;j<n+1;j++)
						if(a[i]==a[i+j])
									*(p+i+j)=0;
			for(i=0;i<n;i++)
						if(a[i]!=0)
			printf("%d ",a[i]);
	return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 356KB, 提交时间: 2021-09-10

#include<stdio.h>
int main(){
    int n,i,arr[1000];
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&arr[i]);
    }
    for(i=0;i<n;i++){
        int j=0;
        for(j=i+1;j<n;j++){
            if(arr[i]==arr[j])
                arr[j]=0;
        }
    }
    for(i=0;i<n;i++){
        if(arr[i]!=0)
            printf("%d ",arr[i]);
    }
}

C 解法, 执行用时: 1ms, 内存消耗: 360KB, 提交时间: 2021-09-07

#include <stdio.h>


int main(){
    int i,j,n;
    int a[100]={0};
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {scanf("%d",&a[i]);}
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if((a[i] ^ a[j])==0)
                a[j] = 0;
        }
    }
    for(i=0;i<n;i++)
        if(a[i]!=0)
        {printf("%d ",a[i]);}
     return 0;
 }

C 解法, 执行用时: 1ms, 内存消耗: 360KB, 提交时间: 2020-06-09

#include<stdio.h> 
int main(){
    int n,i,j,flag=1;
    scanf("%d",&n);
    int a[n];
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
        for(j=0;j<i;j++){
            if(a[i]==a[j]){
                flag=0;
                break;
            }
        }
        if(flag)
             printf("%d ",a[i]);
        flag=1;
    }
    return 0;
     
}

上一题