Найдите индексы K самых больших пар в порядке убывания произведения из заданного массива пар

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

Дан массив arr[] из N целочисленных пар и целое число K , задача состоит в том, чтобы найти индексы K самых больших пар в порядке убывания произведения.

Пример:

Input: arr[] = {{9, 1}, {6, 3}, {6, 8}, {4, 5}, {1, 8}}, K = 1
Output: 2
Explanation: The pair with the largest product is at index 2 i.e, {6, 8}.

Input: arr[] = {{1, 2}, {1, 4}, {1, 3}, {1, 5}}, K = 4
Output: 3 1 2 0

Подход: Данную задачу можно решить с помощью жадного подхода. Идея состоит в том, чтобы сохранить пару (продукт, индекс) для каждой из заданных пар данного массива в векторе пар и отсортировать вектор пар в порядке убывания их значения продукта. Значение индекса первых K пар является требуемым ответом.

Ниже приведена реализация вышеуказанного подхода:


Временная сложность: O(N*logN)
Вспомогательное пространство: O(N)