@emtyxd

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

Существует 2 массива n, m
Переменная предела суммы s
Необходимо найти максимальное количество слагаемых из 2 массивов (n[0] + m[0]), брать числа можно только по порядку.
После нахождения суммы, которая равна или меньше переменной s, числа из массивов удаляются.
Например:
n = [5, 1, 1, 1, 1]
m = [1, 3, 3, 3, 3]
s = 10
Предполагаемый результат 6 ( n[0] + n[1-4] + m[1] / (5 + 1 + 1 + 1 + 1 +1) )
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
function maxCount(s, a1, a2, i1 = 0, i2 = 0) {
    const c1 = i1 < a1.length && a1[i1] <= s ? 1 + maxCount(s - a1[i1], a1, a2, i1 + 1, i2) : 0;
    const c2 = i2 < a2.length && a2[i2] <= s ? 1 + maxCount(s - a2[i2], a1, a2, i1, i2 + 1) : 0;

    return Math.max(c1, c2);
}

console.log(maxCount(10, [5, 1, 1, 1, 1], [1, 3, 3, 3, 3]));


на каждом шаге выбираем максимум из с1 (случай, когда можно взять очередной элемент из массива a1) и с2 (из массива а2)

можно добавить мемоизацию для ускорения (мемоизовать по паре i1, i2)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Найти наибольшее количество слагаемых из переменных двух массивов?

Не найти.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы