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; }