Задать вопрос
@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) )
  • Вопрос задан
  • 129 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 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
лужу, паяю, ЭВМы починяю
Найти наибольшее количество слагаемых из переменных двух массивов?

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

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

Похожие вопросы