ли кто-нибудь есть идеи, как решить следующую проблему:алгоритм нахождения наименьшего различия в индексе равных чисел в массиве
У нас есть массив, например, пусть это будет а = {1, 0, - 1, -2, -1, 0, 1, 2, 3, 4, 5, 1}.
То, что должен найти алгоритм, - это размер наименьшей разницы между индексами одних и тех же чисел. В этом примере (массив a) разность индексов единиц равна 6-0 = 0 и 11-6 = 5, разность индексов нулей равна 5-1 = 4, разность индексов минус равна 4-2 = 2 и т. Д. И алгоритм должен возвращать 2, потому что мы можем видеть, что это наименьшая разница индексов одинаковых чисел.
Есть ли способ решить эту проблему во временной сложности лучше, чем O (n^2)?
Вам не следует доверять всему, чему они научили вас в шуме. Вставить/получить из хэша не является O (1) в реальности. Подумайте об этом немного. Как вы думаете, ваше время доступа к хэшам будет одинаковым для ключей 1T, как для 1k ключей? В самом деле? Это очень наивно. –
Вы правы, что это довольно подвиг из хеш-библиотеки, чтобы снять такое исполнение, но это возможно. Однако снисходительный тон редко помогает вашему делу. – BKE
Это не мое дело, это реальность, с этим справиться. Хэш никогда не был O (1), и сегодня это еще хуже. –