当前位置: 首页 > article >正文

信息学奥赛c++语言:整数去重

题目描述

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

输入

输入包含两行:第一行包含一个正整数n(1 ≤ n ≤ 20000),表示第二行序列中数字的个数;第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于0、小于等于5000。

输出

输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。

样例输入 
5
10 12 93 12 75
样例输出 
10 12 93 75

代码 

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,a[20005];
	cin>>n;
	for(int i=0;i<n;i++)    // 循环 n 次,依次读取 n 个整数,并将它们存储到数组 a 中
	{
		cin>>a[i];
	}
	for(int i=0;i<n;i++)    // 外层循环,遍历数组中的每个元素
	{
		for(int k=i+1;k<n;k++)    // 中层循环,从外层元素的下一个位置开始,查找与外层元素相同的元素
		{
			if(a[i]==a[k])     // 判断当前元素 a[k] 是否与外层元素 a[i] 相同
			{
				for(int c=k;c<n;c++)    // 若相同,通过内层循环将后续元素依次前移覆盖重复元素
				{
					a[c]=a[c+1];
				}
				k--;    // 由于元素前移,k 减 1,以便下次继续检查当前位置
				n--;    // 数组长度减 1
			}
		}
	}
	for(int i=0;i<n;i++)    // 循环输出去重后的数组元素
	{
		cout<<a[i]<<" ";
	}
	return 0;
}

 


http://www.kler.cn/a/582785.html

相关文章:

  • idea maven 编译报错Java heap space解决方法
  • 华为欧拉操作系统安装Docker服务
  • 基于 GEE 利用 Sentinel-2 数据反演叶绿素与冠层水分含量
  • Android Glide 的显示与回调模块原理源码级深度剖析
  • Vue+Node.js+MySQL+Element-Plus实现一个账号注册与登录功能
  • FPGA 实现 OV5640 摄像头视频图像显示
  • 如何制作Windows系统盘、启动盘?(MediaCreationTool_22H2)
  • Banana Pi 与瑞萨电子携手共同推动开源创新:BPI-AI2N
  • Java 大视界 -- Java 大数据在智能安防视频摘要与检索技术中的应用(128)
  • 【数据结构】-- LinkedList与链表(1)
  • MySQL数据库复杂的增删改查操作
  • 如何在Android中实现SQLite数据库操作
  • 【架构艺术】Go语言微服务monorepo的代码架构设计
  • STM32-Unix时间戳
  • Taro-Bluetooth-Print:让蓝牙打印也充满乐趣的开发组件库
  • 几种常见的虚拟环境工具(Virtualenv、Conda、System Interpreter、Pipenv、Poetry)的区别和特点总结
  • vue3+setup组件封装及传值
  • 小程序配置webview
  • 国产大模型DeepSeek在电力行业的应用研究报告:现状、案例与前景展望
  • oracle11.2.0.4 RAC 保姆级静默安装(二) DB数据库软件