Я работаю над решением проблемы, которая немного похожа на Проблема Эйлера 215 . Я думаю, что могу объяснить это без объяснения всей проблемы и / или моего полного подхода к ее решению.
Прямо сейчас я делаю рекурсивные вызовы с помощью RT ([Arraylist of numbers], int i). В соответствии с методикой, я хочу сохранить результаты, поэтому, если и когда RT запрашивает ту же проблему, я могу просто найти ответ вместо повторения, пока не будет достигнут базовый вариант.
Просто для иллюстрации RT ([3, 7,5, 10,5, 15], 2). В рекурсии, справа в правой части, чтобы увеличить. Arraylist используется для определения того, что еще нужно вспомнить в базовом случае.
Как правило, в моем понимании динамического программирования обычно используются 2D-массивы, в которых результаты сохраняются и сохраняются с использованием того, что называется контрольной точкой. Это замечательно, если это что-то вроде RT (int x, int y). Но как насчет моей проблемы?
Полагаю, я могу изменить ArrayList на строку 37510515, а затем на некоторые использованные числа ASCII или, возможно, сами числа. Но я надеюсь, что смогу подойти к этому, как к HashMap, где я использую ArrayList в качестве ключа, но недостаток в этом HashMap хорошо работает только с одним значением (я знаю, что могу связать, но как это будет работать при сохранении результатов, пока легко отследить, к какому "int i" оно относится?)
Короче говоря, может ли кто-нибудь помочь мне придумать способ сохранить результаты с ArrayList и int в качестве двух ссылок?
Заранее спасибо!