Программа Javascript для максимизации элементов с использованием другого массива

Опубликовано: 2 Сентября, 2022

Учитывая два массива размера 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).

Пожалуйста, обратитесь к полной статье о максимизации элементов с использованием другого массива для получения более подробной информации!