ycliper

Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
Скачать

Алгоритм Кадане и его доказательство — задача о максимальной/минимальной сумме подмассива

Автор: QuanticDev

Загружено: 2020-06-18

Просмотров: 15105

Описание: В этом видео вы получите оптимальное решение задачи на максимальную/минимальную сумму подмассива: алгоритм Кадане. Задача проста. Дан массив целых чисел, например, [-1, 1, 3, -2], и нужно найти подмассивы с максимально и минимально возможными суммами (в данном примере: max=[1, 3], min=[-2]). Алгоритм Кадане решает эту задачу с приемлемой временной сложностью O(n) и сложностью памяти O(1). Разновидностью этой задачи является поиск подмассива с максимальной/минимальной суммой, содержащего не менее k элементов. Для её решения можно использовать слегка изменённую версию алгоритма Кадане. Наконец, мы докажем корректность алгоритмов Кадане.

Если все целые числа в массиве положительные, можно использовать гораздо более простой метод скользящих окон. Для массивов с отрицательными числами можно изменить его так, чтобы все числа были положительными, а затем применить метод скользящего окна, но это требует дополнительной обработки; следовательно, это не оптимальное решение. У меня есть отдельное видео, подробно обсуждающее метод скользящего окна с различными примерами вопросов, ссылку на которое вы найдете ниже.

Алгоритм Кадане использует оптимальные подструктуры для решения задачи суммы подмассивов на максимум/мин. Каждый подмассив, заканчивающийся на каждом индексе, вычисляется с использованием подмассива, заканчивающегося на предыдущем индексе. Можно сказать, что это функция накопления с некоторыми дополнительными правилами. В результате это один из моих любимых примеров динамического программирования. В этом видео я объясню, как алгоритм Кадане представляет собой задачу оптимальной подструктуры, используя простую анимацию.

В видео вы найдёте решения следующих задач, а также их временную и пространственную сложность:
Средняя сложность: Алгоритм Кадане: Для заданного массива целых чисел найдите подмассив с максимально/минимальной возможной суммой.
Средняя сложность: Скользящее окно в алгоритме Кадане: Для заданного массива целых чисел найдите подмассив с максимально/минимальной возможной суммой, содержащий не менее k элементов.
Сложный уровень: Докажите алгоритм Кадане: Докажите корректность алгоритма Кадане.

Код решения к примерам доступен по ссылке:
https://github.com/soygul/QuanticDev/...

Если вы можете прочитать версию этого видео в формате статьи по ссылке:
http://quanticdev.com/algorithms/dyna...

Моё видео о методе скользящего окна, которое можно применить в схожих ситуациях:
   • Sliding Window Technique + 4 Questions - A...  

Мой плейлист «Алгоритмы» для всех остальных вопросов и ответов по алгоритмам:
   • Algorithms  

- - - - - - - - - - -
  / quanticdev  
  / quantic_dev  
https://quanticdev.com

Не удается загрузить Youtube-плеер. Проверьте блокировку Youtube в вашей сети.
Повторяем попытку...
Алгоритм Кадане и его доказательство — задача о максимальной/минимальной сумме подмассива

Поделиться в:

Доступные форматы для скачивания:

Скачать видео

  • Информация по загрузке:

Скачать аудио

Похожие видео

Big O Time/Space Complexity Types Explained - Logarithmic, Polynomial, Exponential, and More

Big O Time/Space Complexity Types Explained - Logarithmic, Polynomial, Exponential, and More

Sliding Window Technique + 4 Questions - Algorithms

Sliding Window Technique + 4 Questions - Algorithms

5 простых шагов для решения любой рекурсивной задачи

5 простых шагов для решения любой рекурсивной задачи

Объяснение поиска в глубину (DFS): алгоритм, примеры и код

Объяснение поиска в глубину (DFS): алгоритм, примеры и код

Kadane's Algorithm - DSA with Javascript | Maximum Subarray Sum | Frontend DSA Interview Questions

Kadane's Algorithm - DSA with Javascript | Maximum Subarray Sum | Frontend DSA Interview Questions

Как считали число пи? [Veritasium]

Как считали число пи? [Veritasium]

The Backtracking Blueprint: The Legendary 3 Keys To Backtracking Algorithms

The Backtracking Blueprint: The Legendary 3 Keys To Backtracking Algorithms

5 советов по решению проблем для успешного ответа на вопросы собеседования по программированию

5 советов по решению проблем для успешного ответа на вопросы собеседования по программированию

Алгоритм Кадане для задачи на максимальную сумму подмассива

Алгоритм Кадане для задачи на максимальную сумму подмассива

Maximum Sum Circular Subarray - Leetcode 918 - Python

Maximum Sum Circular Subarray - Leetcode 918 - Python

Комплексные числа: коротко и понятно – Алексей Савватеев | Лекции по математике | Научпоп

Комплексные числа: коротко и понятно – Алексей Савватеев | Лекции по математике | Научпоп

5 простых шагов для решения задач динамического программирования

5 простых шагов для решения задач динамического программирования

LeetCode Exercise in Java Tutorial — Решение FAST для задачи с двумя суммами

LeetCode Exercise in Java Tutorial — Решение FAST для задачи с двумя суммами

Max Contiguous Subarray Sum - Cubic Time To Kadane's Algorithm (

Max Contiguous Subarray Sum - Cubic Time To Kadane's Algorithm ("Maximum Subarray" on LeetCode)

Mastering Dynamic Programming - How to solve any interview problem

Mastering Dynamic Programming - How to solve any interview problem

Algorithms Lecture 13: Maximum Sub-array Problem using Divide-and-Conquer

Algorithms Lecture 13: Maximum Sub-array Problem using Divide-and-Conquer

Алгоритм Кадане — подмассив максимальной суммы (вопрос для собеседования по программированию Amazon)

Алгоритм Кадане — подмассив максимальной суммы (вопрос для собеседования по программированию Amazon)

Алгоритм скользящего окна — переменная длина + фиксированная длина — курс DSA на Python, лекция 13

Алгоритм скользящего окна — переменная длина + фиксированная длина — курс DSA на Python, лекция 13

Самая Сложная В Мире Логическая Головоломка

Самая Сложная В Мире Логическая Головоломка

Total Unique Ways To Make Change - Dynamic Programming (

Total Unique Ways To Make Change - Dynamic Programming ("Coin Change 2" on LeetCode)

© 2025 ycliper. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]