腾讯pcg C++后台开发一面

小Q在进行射击气球的游戏,如果小Q在连续T枪中打爆了所有颜色的气球,将得到一只QQ公仔作为奖励。(每种颜色的气球至少被打爆一只)。这个游戏中有m种不同颜色的气球,编号1到m。小Q一共有n发子弹,然后连续开了n枪。小Q想知道在这n枪中,打爆所有颜色的气球最少用了连续几枪?
输入描述:
第一行两个空格间隔的整数数n,m。n<=1000000 m<=2000
第二行一共n个空格间隔的整数,分别表示每一枪打中的气球的颜色,0表示没打中任何颜色的气球。
输出描述:
一个整数表示小Q打爆所有颜色气球用的最少枪数。如果小Q无法在这n枪打爆所有颜色的气球,则输出-1
示例
输入:
12 5
2 5 3 1 3 2 4 1 0 5 4 3
输出:
6

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

一开始理解错题了。。后来写了个O(N2)的遍历,最后面试官说就这么多吧马上要结束的时候忽然想起来了滑动窗口解,复杂度是O(N) (我不会算,最后问的面试官)
临死前想起来的QAQ
他说这个是最优解了,许愿一面能过把
#面经##校招##腾讯##C++工程师#
全部评论
我的题目和你一样,也是8点面的,就做这道题。
1
送花
回复 分享
发布于 2020-08-25 22:27
大佬,一面就做了一个题?没问项目什么的吗?
点赞
送花
回复 分享
发布于 2020-08-25 21:37
秋招专场
校招火热招聘中
官网直投
题目看不懂,路过
点赞
送花
回复 分享
发布于 2020-08-26 09:47
最长无重复子串的变形
点赞
送花
回复 分享
发布于 2020-08-26 14:55
是不是遍历开始索引i,每次用个哈希表记录j指针,size()到5就结束,返回res=max(res,j-i+1)?
点赞
送花
回复 分享
发布于 2020-08-26 20:50
也可以二分吧
点赞
送花
回复 分享
发布于 2020-08-27 16:41

相关推荐

4 15 评论
分享
牛客网
牛客企业服务