Публикации по теме 'dynamic-programming'


Победить AlgoExpert: подматрица максимальной суммы
Добро пожаловать обратно в Beating AlgoExpert, серию статей, показывающих, как превзойти лучшие решения экспертов. Предыдущую статью из этой серии вы можете посмотреть здесь . Сегодняшняя задача называется Подматрица максимальной суммы , и ее можно найти на AlgoExpert здесь . К сожалению, я не смог найти эту проблему ни на Leetcode, ни на HackerRank, поэтому приношу свои извинения читателям, у которых нет доступа. Подсказка Учитывая двумерную матрицу, наша цель — найти наибольшую..

Удалить и заработать
Описание Учитывая массив nums целых чисел, вы можете выполнять операции над массивом. В каждой операции вы выбираете любой nums[i] и удаляете его, чтобы заработать nums[i] очков. После этого вы должны удалить каждый элемент, равный nums[i] - 1 или nums[i] + 1 . Вы начинаете с 0 баллов. Верните максимальное количество очков, которое вы можете заработать, применяя такие операции. Примеры Пример 1: Input: nums = [3, 4, 2] Output: 6 Explanation: Delete..

Размен монет 2 — Июньское испытание LEETCODE
Постановка задачи. Вам даны монеты разного номинала и общая сумма денег. Напишите функцию для вычисления количества комбинаций, составляющих эту сумму. Вы можете предположить, что у вас есть бесконечное количество монет каждого вида. Пример 1: Ввод: сумма = 5, монеты = [1, 2, 5] Вывод: 4 Объяснение: существует четыре способа составить сумму: 5=5 5 =2+2+1 5=2+1+1+1 5=1+1+1+1+1 Пример 2: Ввод: сумма = 3, монеты = [2] Вывод: 0 Объяснение: сумма 3 не может быть составлена ​​только из..

Проблема с ДП
Имея число n , мы можем разделить его только на три части n/2, n/3 и n/4 (мы будем рассматривать только целые числа часть). Задача состоит в том, чтобы найти максимальную сумму , которую мы можем получить, разделив число на три части рекурсивно и просуммировав их вместе. Примечание: Иногда максимальную сумму можно получить, не деля n. начните с минимального решения n=0, затем maxsum=0, теперь n=1, maxsum=1 и так далее. поэтому мы находим рекурсивное решение типа..

20+ полезных шаблонов синтаксиса Python для собеседований по программированию
Станьте более уверенными и сэкономьте время на собеседованиях, изучив эти распространенные шаблоны собеседований по программированию на Python При кодировании в реальной жизни я иногда забываю синтаксис и вынужден прибегать к помощи Google. К сожалению, во время собеседований по программированию такая роскошь недоступна. Чтобы решить эту проблему, я рассмотрел распространенные шаблоны синтаксиса в Python для собеседований по кодированию. Синтаксис не так важен, как понимание основных..

Уравнение Беллмана и динамическое программирование
Это серия статей об обучении с подкреплением, и если вы новичок и не изучали раньше, пожалуйста, прочтите (ссылки в конце этой статьи). До сих пор мы обсуждали только основы обучения с подкреплением и то, как сформулировать задачу обучения с подкреплением, используя марковский процесс принятия решений (MDP). С этого момента мы будем работать над решением MDP. Уравнение Беллмана Если вы читали что-нибудь, связанное с обучением с подкреплением, вы, должно быть, где-то встречали..

Применение динамического программирования к графам
Динамическое программирование - это алгоритмический метод, который обычно основан на повторяющейся формуле и одном (или нескольких) начальных состояниях . Когда это применяется к графам, мы можем найти кратчайшие пути с одним источником или кратчайшие пути для каждой пары. Давайте посмотрим, какие проблемы может помочь нам решить динамическое программирование. 1. Беллман-Форд Это алгоритм поиска кратчайших путей из одного источника. Есть другой алгоритм, который делает то же самое..