2019腾讯提前批校招笔试题 气球游戏

小Q在进行射击气球的游戏,如果小Q在连续T枪中打爆了所有颜色的气球,将得到一只QQ公仔作为奖励。(每种颜色的球至少被打爆一只)。

这个游戏中有m种不同颜色的气球,编号1到m。

小Q一共有n发子弹,然后连续开了n枪。

小Q想知道在这n枪中,打爆所有颜色的气球最少用了连续几枪?

输入格式

第一行包含两个整数n和m。

第二行包含n个整数,分别表示每一枪打中的气球的颜色,0表示没打中任何颜色的气球。

输出格式

一个整数表示小Q打爆所有颜色气球用的最少枪数。

如果小Q无法在这n枪打爆所有颜色的气球,则输出-1。

数据范围

1≤n≤1061≤n≤106,
1≤m≤20001≤m≤2000

输入样例:

12 5
2 5 3 1 3 2 4 1 0 5 4 3

输出样例:

6

样例解释

有五种颜色的气球,编号1到5。

游客从第二枪开始直到第七枪,这连续六枪打爆了5 3 1 3 2 4这几种颜色的气球,包含了从1到5的所有颜色,所以最少枪数为6。

难度:中等
时/空限制:1s / 64MB
总通过数:87
总尝试数:326
来源:腾讯2019,笔试题

 

这道题目的思路是双指针滑窗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值