不重复地输出数
来源:互联网 发布:ubuntu图形界面修复 编辑:程序博客网 时间:2024/05/04 16:21
- 描述
输入n个数,从小到大将它们输出,重复的数只输出一次。保证不同的数不超过500个。
- 输入
- 第一行是一个整数n。1 <= n <= 100000。
之后n行,每行一个整数。整数大小在int范围内。 - 输出
- 一行,从小到大不重复地输出这些数,相邻两个数之间用单个空格隔开。
- 样例输入
52 4 4 5 1
- 样例输出
1 2 4 5
大体的思路是遍历去重再排序,附上ac代码。
#include<stdio.h>
int main()
{
int n,a[200001],i,j,f[200001]={0},b[200001]={0},t=0,k=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
f[a[i]]++;
if(f[a[i]]==1)
b[k++]=a[i];
}
for(i=0;i<k-1;i++)
{
for(j=0;j<k-1-i;j++)
{
if(b[j]>b[j+1])
{
t=b[j];b[j]=b[j+1];b[j+1]=t;
}
}
}
for(i=0;i<k;i++)
printf("%d ",b[i]);
return 0;
}
int main()
{
int n,a[200001],i,j,f[200001]={0},b[200001]={0},t=0,k=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
f[a[i]]++;
if(f[a[i]]==1)
b[k++]=a[i];
}
for(i=0;i<k-1;i++)
{
for(j=0;j<k-1-i;j++)
{
if(b[j]>b[j+1])
{
t=b[j];b[j]=b[j+1];b[j+1]=t;
}
}
}
for(i=0;i<k;i++)
printf("%d ",b[i]);
return 0;
}
0 0
- 不重复地输出数
- OpenJudge_P7941 不重复地输出数
- C++ - 不重复地输出升序数组中的元素
- 不重复地输出升序数组中的元素
- 不重复数
- 不重复数
- 不重复数
- “不重复数”问题
- 不重复数
- [迅雷笔试题]从1....n中随机输出m个不重复的数
- 从1....n中随机输出m个不重复的数
- 输出递增序列中不重复的两个数和等于某个给定的值
- 从1....n中随机输出m个不重复的数
- 从0到n-1中随机等概率输出m个不重复的数
- 从0到n-1中随机等概率输出m个不重复的数
- 随机等概率的输出m个不重复的数
- 随机选数 不重复
- 随机生成不重复数
- 回首2016,探索2017
- angular2系统学习 - 路由与导航(1)基础篇
- 数据结构课程设计-ytu职工信息管理系统
- POJ 3180 The Cow Prom 强连通分量
- redis t_hash哈希对象的源码分析
- 不重复地输出数
- [leetcode]453. Minimum Moves to Equal Array Elements
- 小米手机权限开启方法8
- 深入JDK源码之ThreadLocal类
- ZCMU-1771-萌妹
- 解线性方程组——高斯消元の板子
- My year of 2016
- thinkphp5第一章
- Linux环境下安装Redis