Используя динамическое программирование, я должен найти эффективный алгоритм для решения следующей задачи:
В качестве входных данных мы получаем массив случайных чисел размером N
, int k
, который является минимальным расстоянием междувыбранные числа и int n
, то есть общее количество чисел, которые мы должны выбрать.Цель задачи - выяснить, какова минимально возможная сумма n
выбранных чисел.Я не могу понять, как подойти к этой проблеме.
Например, если у нас есть следующий массив:
arr = [5, 5, 3, 3, 2, 2, 3, 3, 5, 5, 5, 5, 5, 3, 2, 5]
N = 16
k = 4
n = 3
, результат будет 8 (3+3+2)
, выбрав числа вуказатель 2, 7 и 14.