Публикации по теме '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 , вы рискуете быть отмененным.
Чтобы понять, почему статическая..