Минимизируйте сумму минимального и второго минимального элементов из всех возможных троек.
Опубликовано: 20 Сентября, 2022
Учитывая массив arr[] , задача состоит в том, чтобы минимизировать сумму минимального и второго минимального элементов из всех возможных троек. Один элемент может входить ровно в один триплет.
Input: arr[] = {1, 2, 4, 6, 7, 8, 3}, N = 7
Output: 10
Explanation: Here two triplets are formed as the size of arr[] is 7 and 7/3 = 2.
Triplet 1 – {1, 6, 3} -> Two minimum elements are 1 and 3.
Triplet 2 – {2, 4, 8} -> Two minimum elements are 2 and 4.
Hence sum = 1 + 3 + 2 + 4 = 10Input: arr[] = {5, 7, 3, 8, 9}
Output: 8
Подход: Эту проблему можно решить с помощью жадного подхода. Выполните следующие шаги, чтобы решить данную проблему.
- Отсортируйте массив arr[] в неубывающем порядке, чтобы было проще выбирать минимум элементов в каждой тройке.
- Инициализируйте переменную, скажем, ans = 0 , чтобы сохранить минимально возможный ответ.
- Перейдите arr[] и сделайте каждую тройку, взяв два элемента с левой стороны и один элемент с правой стороны.
- Вернуть ответ как окончательный ответ.
Временная сложность: O (N log N)
Вспомогательное пространство: O(1)