整数去重
题目描述
给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。
输入格式
输入包含两行:
第一行包含一个正整数n(1≤n≤20000),表示第二行序列中数字的个数;
第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于10、小于等于50。
输出格式
输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。
输入样例
5
10 12 93 12 75
输出样例
10 12 93 75
【代码示例】
#include<iostream> using namespace std; int a[100000]={}, b[100000]={}; int main(){ int n; cin>>n; // 1. 输入n个数并标记n个数已经输入; for(int i=0; i<n; i++){ cin>>a[i]; b[i]=1; } // 2. 嵌套循环查找相同数字,找到后将后面的数字去除标记; for(int i=0; i<n; i++){ for(int j=i+1; j<n; j++){ if(a[i]==a[j]){ b[j]=0; } } } // 3. 输出标记的数字。 for(int i=0; i<n; i++){ if(b[i]==1){ cout<<a[i]<<" "; } } return 0; }
#include<iostream> using namespace std; int a[20000]={}, book[20000]={}; int main(){ // a数组: 10 12 93 12 75 // b数组: 1 2 1 1 // b数组下标: 10 12 93 75 int n, m; cin>>n; for(int i=0; i<n; i++){ cin>>m; a[i]=m; // 存储n个数字; book[m]++; } for(int i=0; i<n; i++){ if(book[a[i]]==1) cout<<a[i]<<" "; // 输出出现一次的数字: else if(book[a[i]]>1){ cout<<a[i]<<" "; book[a[i]]=0; // 避免a[i]再次输出。 } } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现