Минимизируйте затраты, чтобы доставить максимальный элемент в K-ю позицию путем замены

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

Даны два целых числа N и K и массив из N положительных целых чисел (т. е . a 0 , a 1 , a 2 …., a n-1 ), задача состоит в том, чтобы найти минимальную стоимость, чтобы доставить максимальное значение в K позицию с помощью подкачка (индексация на основе 1). Стоимость замены элементов определяется как сумма значений элементов замены.

Пример:

Input: N = 6, K = 4, arr[] = {3, 7, 8, 7, 4, 5}
Output: 12
Explanation: Sum of arr[2] + arr[4]

Input: N = 8, K = 4, arr[] = {11, 31, 17, 18, 37, 14, 15, 11}
Output: 0
Explanation: Maximum is already at arr[4]

Подход:
Идея состоит в том, чтобы найти положение максимального элемента, если максимальный элемент не находится в K -й позиции, а затем поменять его местами с элементом, который находится в K-й позиции, и ответом будет стоимость элемента замены, которая представляет собой сумму значений элементов замены. . если максимальный элемент находится в k-й позиции, то ответ будет 0.

Выполните следующие шаги, чтобы реализовать вышеуказанную идею:

  • Найдите положение максимального элемента.
  • Проверьте, находится ли максимальный элемент в K -й позиции
    • Если правда, то вернуть 0 .
    • В противном случае поменяйте местами максимальный элемент с элементом в позиции K и верните сумму значений элементов замены .

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

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