騰訊面試算法題
前段時間接觸了一下騰訊,由於疫情期間第一輪進行的是遠程線上面試,上來一道算法題,當時沒理解題目,解答錯誤,直接被PASS了。過一段時間回憶了一下題目,重新理解並解答,題目如下:
小Q在進行射擊氣球的游戲,如果小Q在連續T槍中打爆了所有顏色的氣球,將得到一只QQ公仔作為獎勵。(每種顏色的球至少被打爆一只)。
這個游戲中有m種不同顏色的氣球,編號1到m。
小Q一共有n發子彈,然后連續開了n槍。
小Q想知道在這n槍中,打爆所有顏色的氣球最少用了連續幾槍?
輸入格式
第一行包含兩個整數n
和m
。
第二行包含n
個整數,分別表示每一槍打中的氣球的顏色,0
表示沒打中任何顏色的氣球。
輸出格式
一個整數表示小Q打爆所有顏色氣球用的最少槍數。
如果小Q無法在這n
槍打爆所有顏色的氣球,則輸出-1
。
數據范圍
1≤n≤1000000
1≤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
。