# 2350. Shortest Impossible Sequence of Rolls ###### tags: `Leetcode` `Hard` `Greedy` Link: https://leetcode.com/problems/shortest-impossible-sequence-of-rolls/ ## 思路 $O(N)$ $O(k)$ 思路[参考](https://leetcode.com/problems/shortest-impossible-sequence-of-rolls/) 思考两个问题 1. 什么时候确保所有seq len=1的seq出现过 2. 什么时候确保所有seq len=2的seq出现过 For a sequence of size 1, all k dice must appear in ```rolls```. For a sequence of size 2, all k dice must appear after all k dice appear in ```rolls```. ... and so on. So, we go through rolls and count unique dice. When we have all k dice, we increase the number of sequences ```seq``` and reset the counter. ## Code ```java= class Solution { public int shortestSequence(int[] rolls, int k) { int cnt = 0; int seq = 1; int[] dices = new int[k+1]; for(int roll:rolls){ if(dices[roll]==seq-1){ dices[roll]++; if(++cnt%k==0) seq++; } } return seq; } } ```