Учитывая список целых чисел, как все пары (то есть. Axb = cxd; такие, что a! = B! = C! = E) быть найдены при минимальной временной сложности?
Я пробовалиспользуя тип данных hashmap, который в основном выполняет вычисление продукта, проверяет, найден ли он уже внутри hashmap, и, если это так, он атрибутирует значение счетчика приращений вложенных циклов for с типом объекта Pair, найденным в hashmap.
Пара - это объект, хранящий индекс первого и второго чисел в паре.Хэш-карта хранит продукт в качестве ключа, а пару - в качестве значения.
Проблема с моим кодом заключается в том, что когда дело доходит до следующего сценария ...
axb = cxd = exf
... он не работает из-за того, что он создает только следующие ссылки ...
axb = cxd и axb = exf
... и являетсяневозможно достичь:
cxd = exf
Например, следующий массив дает неверные результаты:
int[] A = {1,2,3,4,6,12};
Я ожидаю, что единственная проблема заключается в том, что хэш-карта принимает только одно значениедля данного ключа.Возможно, я пытался изменить объявление hashmap на массив пар, но быстро понял, что мне понадобится добавить еще один цикл for, что увеличит сложность времени.
Любые идеи, которые я могу сделать, чтобы сохранитьO (n²) и предоставить правильные результаты?