У меня есть массив, который содержит N элементов, значения которых находятся в диапазоне 0 <= значение <N и могут быть прерывистыми.Для этого массива мне нужно найти срез, который будет содержать все уникальные значения, и в то же время это будет самый короткий срез, который будет соответствовать вышеуказанному критерию. </p>
Пример, для массива {1, 2, 1, 2, 1, 4, 3, 4, 8, 1, 8} с 5 уникальными значениями {1, 2, 3, 4, 8} речь идет о срезе {2, 1, 4, 3, 4, 8}с длиной 6.
Есть ли оптимальный способ сделать это?На данный момент у меня наивная реализация, которая имеет слишком высокую сложность (вложенные циклы).Я пытался придумать идею для алгоритма, чтобы сделать это оптимальным образом, но, к сожалению, безрезультатно.На данный момент я пытался придумать что-то, что будет использовать вхождения для каждого уникального значения при циклическом просмотре массива, но все же мой разум недостаточно ясен.Любые идеи приветствуются, эта проблема беспокоит меня долгое время.:) Заранее спасибо.
С наилучшими пожеланиями