Программа Javascript для максимизации элементов с использованием другого массива
Учитывая два массива размера n, максимизируйте первый массив, используя элементы из второго массива так, чтобы новый сформированный массив содержал n наибольших, но уникальных элементов обоих массивов, дающих приоритет второму массиву (все элементы второго массива появляются перед первым массивом). ). Порядок появления элементов на выходе сохраняется таким же, как и на входе.
Примеры:
Input : arr1[] = {2, 4, 3}
arr2[] = {5, 6, 1}
Output : 5 6 4
As 5, 6 and 4 are maximum elements from two arrays giving second array higher priority. Order of elements is same in output as in input.
Input : arr1[] = {7, 4, 8, 0, 1}
arr2[] = {9, 7, 2, 3, 6}
Output : 9 7 6 4 8
Подход: мы создаем вспомогательный массив размера 2 * n и сохраняем элементы 2-го массива во вспомогательном массиве, а затем мы будем хранить в нем элементы 1-го массива. После этого отсортируем вспомогательный массив по убыванию. Чтобы сохранить порядок элементов в соответствии с входными массивами, мы будем использовать хэш-таблицу. Мы будем хранить в хеш-таблице первые n самых больших уникальных элементов вспомогательного массива. Теперь мы проходим по второму массиву и сохраняем те элементы второго массива во вспомогательном массиве, которые присутствуют в хеш-таблице. Точно так же мы пройдем по первому массиву и сохраним элементы, присутствующие в хеш-таблице. Таким образом, мы получаем n уникальных и самых больших элементов из обоих массивов во вспомогательном массиве, сохраняя при этом порядок появления элементов.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(n * log n).
Пожалуйста, обратитесь к полной статье о максимизации элементов с использованием другого массива для получения более подробной информации!