区块链技术博客
www.b2bchain.cn

老六的邮票的讲解

这篇文章主要介绍了老六的邮票的讲解,通过具体代码讲解8414并且分析了老六的邮票的讲解的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了老六的邮票的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/?p=8414。具体如下:

老六的邮票

题目描述

老六这个人爱好广泛,喜欢唱、跳、rap, 但其实他最感兴趣的还是收集邮票, 并且觉得自己收集的邮票种类越多越好。 一天,他闲来无事,把自己收集的 n 枚邮票都取了出来并摆成一排, 正当他为自己有这么多种邮票洋洋自得时, 他突然发现其中有些邮票是一样的,他的心情一下变得有些低落。 已经知道每张邮票上都有一个数字 aᵢ , 数字一样的邮票表示是相同的邮票。 现在他想知道自己究竟有多少种不同的邮票,你能帮他算出来吗? 

输入

第一行输入一个整数 n(1<=n<=50000),表示总共有多少枚邮票。 第二行输入n个整数,第 i(1<=i<=n)个整数 aᵢ(1<=aᵢ<=n) 表示第i枚邮票上的数字。 

输出

只有一行,一个数字,表示老六有多少种不同的邮票。 

样例输入

【样例输入1】

6 1 5 2 2 3 5 

【样例输入2】

3 1 1 1 

样例输出

【样例输出1】

4 

【样例输出2】

1 

题解:

题目大意:
读入一个正整数n,然后输入n个正整数,问里面有多少种不同的数。

思路:
可以开一个v[n]
数组,用来记录一个数有没有出现过,v数组一开始全部赋值为0。然后再定义一个sum变量,一开始为0
然后用一个循环从i=1,扫描到i=n,每次读入一个新的数a。
v[a]==0,则表示在前i-1个数中,数字a没有出现过,这是一个新的数,这时我们sum++,然后再把v[a]赋值为1
v[a]==1,则表示在前i-1个数中,数字a已经出现过了,并不是一个新的数,我们就什么都不做,读取下一个a。
最后输出sum即可。

时间复杂度:O(n)
空间复杂度:O(n)

本博客无代码,请谅解

AC

本文地址https://www.b2bchain.cn/?p=8414

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 老六的邮票的讲解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们