Количество упорядоченных пар (i, j), таких что arr[i] и arr[j] объединяются в X
Опубликовано: 20 Сентября, 2022
Учитывая массив arr[] размера N и целое число X , задача состоит в том, чтобы найти количество упорядоченных пар (i, j) таких, что i != j и X является конкатенацией чисел arr[i] и arr[ дж]
Примеры :
Input: N = 4, arr[] = {1, 212, 12, 12}, X = 1212
Output: 3
Explanation: X = 1212 can be obtained by concatenating:
- numbers[0] = 1 with numbers[1] = 212
- numbers[2] = 12 with numbers[3] = 12
- numbers[3] = 12 with numbers[2] = 12
- Therefore, number of possible ordered pairs are 3
Input: N = 3, arr[] = {11, 11, 110}, X = 11011
Output: 2
Подход: задачу можно решить с помощью хэш-карты. Выполните следующие шаги, чтобы решить проблему.
- Сохраните длины всех чисел в векторе.
- Перебрать заданный массив чисел и проверить, можно ли получить X из числа. Если это так, увеличьте количество, чтобы проверить, со сколькими числами текущий номер может образовать пару.
- Увеличьте значение текущего числа на карте.
- Очистите карту и повторите те же действия с заданным числовым массивом с обратной стороны.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность : O(N)
Вспомогательное пространство : O(N)