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

信息学奥赛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.dtcms.com/a/65195.html

相关文章:

  • 3-001:MySQL 中的回表是什么?
  • 中国软件供应链安全技术指南|DevSecOps敏捷安全技术金字塔V3.0正式发布
  • MQ消息发送不在MySQL事务中,该如何保证一致性?
  • 蓝桥 2109统计子矩阵
  • Ubuntu22.04安装数据
  • 5.1 程序调试
  • 什么是双机热备系统?双机热备现在是否已经过时了?
  • 职坐标C语言数据结构算法核心精讲
  • Deep research深度研究:ChatGPT/ Gemini/ Perplexity/ Grok哪家最强?(实测对比分析)
  • 内容中台的实施基石是什么?
  • vue2双向绑定解析
  • 单片机设计暖脚器研究
  • 投资晚报 3.12
  • 【论文笔记】FLARE:feed-forward+posegeometry estimate+GS
  • 调优案例一:堆空间扩容提升吞吐量实战记录
  • 适合二次开发的Web组态软件推荐
  • 子母钟系统,京准电子科技助力高考精准计时
  • 机器学习常见激活函数
  • Vitis IDE 艰难切换--从传统 Vitis GUI 到 2024.1 统一软件界面
  • NetAssist 5.0.14网络助手基础使用及自动应答使用方案
  • 【学习笔记】《逆向工程核心原理》03.abex‘crackme-2、函数的调用约定、视频讲座-Tut.ReverseMe1
  • ESP8266-调试
  • 代理(Delegate)、闭包(Closure)、Notification(通知中心) 和 swift_event_bus适用场景和工作方式
  • vue3实现虚拟滚动Vue-Virtual-Scroller
  • docker2
  • 2.angular指令
  • 根据指定 Excel 模板将 Excel 明细数据生成新的 Excel 文档
  • JVM垃圾收集器合集
  • 考研复试c语言常见问答题汇总2
  • Git Fast-forward 合并详解:原理、场景与最佳实践