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

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

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽