Динамическое программирование: как решить всю комбинацию упорядоченной монеты для большого ввода - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть задача найти несколько способов получить сумму заданного числа из массива, содержащего монеты.Например:

монеты: {2,3,5,7}
сумма: 8
всего способов: 6 -> (2 + 2 + 2 + 2), (2 + 3 +3), (3 + 2 + 3), (3 + 3 + 2), (3 + 5) и (5 + 3).

У меня есть решение, которое работает с использованием псевдокода dp:

build an array ar of size "sum"
ar[0]=1
for i = 1 to sum do:
    ar[i]=ar[i-2]+ar[i-3]+ar[i-5]+ar[i-7]
return ar[sum]

Как уже упоминалось, этот код работает нормально, но платформа, на которой я работаю, может иметь сумму до 10 * 1010.* 19 , и, как и ожидалось, это дает мне тайм-аут.Есть ли другой способ решить эту проблему?Я даже пытался уменьшить размер массива, когда он выходит за пределы размера i-largest value in coins.Но это также хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...