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


LeetCode 70. Восхождение по лестнице  — решение Python
Blind 75 — Вопросы по программированию и техническому интервью — серия объяснений Проблема: Объяснение: Код для этой задачи очень прост, но интуиция сложнее кода. Всегда есть решение грубой силы, но оно равно O(n²) и является тривиальным. Это задача динамического программирования, которая помогает при поиске решения. Решение, которое не требует массива и, следовательно, пространства O(1), заключается в отслеживании количества шагов 1 и шагов 2. Если вы знаете классические..

Проблема улавливания дождевой воды: три разных подхода (от грубого к оптимизированному)
Улавливание дождевой воды — очень известная задача массивов и динамического программирования . Это сложная задача как для LeetCode , так и для компьютерщики для гиков . Но в конце этого блога вы не будете считать эту проблему сложной. :) В этом блоге мы рассмотрим проблему, начиная с подхода грубой силы и заканчивая оптимизированным. Постановка задачи: Учитывая n неотрицательных целых чисел, представляющих карту высот, где ширина каждой полосы равна 1 , вычислите, сколько..

Мемоизация в динамическом программировании
Что такое динамическое программирование? Динамическое программирование — это метод, который позволяет нам решать класс задач, которые имеют перекрывающиеся подзадачи и оптимальную подструктуру . Давайте углубимся в эти концепции. Оптимальная основа Задача обладает свойством оптимальной подструктуры, если ее общее оптимальное решение может быть построено из оптимальных решений ее подзадач. Для чисел Фибоначчи, как известно, fib(n) = fib(n — 1) + fib(n — 2) . Это ясно..

Имея список целых чисел, напишите функцию, которая возвращает наибольшую сумму несмежных чисел.
arr = [a0, a1, . . . , an] Проблема Имея список целых чисел, напишите функцию, которая возвращает наибольшую сумму несмежных чисел. Например, [2, 4, 6, 2, 5] должны вернуть 13, поскольку мы выбираем 2, 6 и 5. [5, 1, 1, 5] должны возвращать 10, поскольку мы выбираем 5 и 5. Решение Во время итерации по массиву мы будем обращать внимание на две вещи с именами incl и excl : incl : Для данного i эта переменная будет представлять наибольшую сумму, полученную путем добавления arr..

Что такое динамическое программирование?
Решение проблем — задача оптимизации Что такое динамическое программирование? Все, что нам нужно знать о динамическом программировании Привет народ 👋, В этом эпизоде ​​мы узнаем о динамическом программировании , подходе к решению некоторых математически сложных задач в области информатики. Динамическое программирование — один из широко используемых подходов в решении задач. Прежде чем перейти к разделу динамического программирования, нам нужно понять некоторые основные вещи...

Динамическое программирование, возможно, вы уже видели это раньше (ха-ха)
Помимо того, что динамическое программирование является приемлемым способом получить прилив серотонина, это еще один способ сократить временную сложность. Так что же такое динамическое программирование? Динамическое программирование - это практика, при которой вы разбиваете проблему, зависящую от более мелких проблем, а затем оптимизируете временную сложность этих проблем, чтобы улучшить временную сложность общей проблемы. Сложность времени относится к количеству времени, которое..

Возвращение динамической типизации: возможно ли это?
Или статическая типизация всегда была правильной парадигмой? Статическая типизация победила! Просто проверьте Quora или Stack Overflow, и вы увидите, что в большинстве ответов предпочтение отдается статической типизации. JavaScript находится на TypeScript. Python и PHP имеют типизированные подсказки. А популярность Java, Go и Rust только что отчеканена! И если вы бросите вызов статус-кво, как это сделал DHH , вы рискуете быть отмененным. Чтобы понять, почему статическая..