Я работаю над проблемой Python, где мне нужно проверить, содержит ли несортированный массив дубликаты на указанном расстоянии k. В частности, мне нужно вернуть True, если какое-либо значение появляется более одного раза в пределах k индексов, в противном случае верните False.
Например, если задан массив [1, 2, 3, 1] и k = 3, ожидаемый результат будет истинным, поскольку элемент 1 снова появляется в диапазоне 3-х индексов. Если бы k было равно 2, ожидаемый результат был бы False.
Я знаю, что есть несколько способов решить эту проблему, но мне нужно эффективное решение.
Как я могу решить эту проблему, используя скользящее окно или другой оптимальный подход?
Ограничения:
Массив может содержать до 10^5 элементов.
k всегда меньше длины массива.
Любые советы или решения буду очень признателен!
Я ожидал, что подход скользящего окна позволит эффективно идентифицировать дубликаты на указанном расстоянии с временной сложностью
𝑂
(
𝑛
)
O(n), где
𝑛
n — размер массива. Набор будет отслеживать текущие элементы окна, и дубликаты будут обнаруживаться в пределах разрешенного диапазона.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ecific-dis
Как я могу эффективно определить, содержит ли массив дубликаты на определенном расстоянии, используя Python? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение