小李非常迷恋收集各种干脆面里面的英雄卡,为此他曾经连续一个月都只吃干脆面这一种零食,但是有些稀有英雄卡真的是太难收集到了。后来某商场搞了一次英雄卡兑换活动,只要你有三张编号连续的英雄卡,你就可以换任意编号的英雄卡。小李想知道他最多可以换到几张英雄卡(新换来的英雄卡不可以再次兑换)。
输入格式:
第一行,共一个整数n,表示小李拥有的英雄卡数。
第二行,共n个空格隔开的数字ai,表示英雄卡的编号。
输出格式:
输出仅有一行,共1个整数,表示小李最多可以换到的英雄卡。
输入样例:
6
3 1 2 4 4 5
输出样例:
1
【样例说明】
1 2 3三张编号连续,可以换一张,换完后剩下4 4 5,不符合兑换规则,无法继续兑换。
【数据规模】
70%数据,1<=n<=1000
100%数据,1<=n<=10000,1<=ai<=100000
代码实现:
n = int(input())
m = list(map(int,input().split()))
d = {}
for i in m:
if i not in d:
d[i] = m.count(i)
cnt = 0
for i in range(1,max(m)):
try:
while d[i]>0 and d[i+1]>0 and d[i+2]>0:
cnt += 1
d[i] -= 1
d[i+1] -= 1
d[i+2] -= 1
except:
continue
print(cnt)
运行结果:
有两个测试点超时,如果有大佬看到我这篇文章,还望大佬可以指点一下。