LeetCode | '1. Two Sum' | Easy. Решение задачи.

preview_player
Показать описание
#leetcode #youtube #python
Решение задачи "1. Two Sum" из LeetCode.

В данном видео я рассказываю как я решил эту задачку.

В начале я объяснил суть проблемы, затем объяснил свою логику для решения задачи.

Первый алгоритм, брутфорс, легко пишется но очень медленный.
Иногда, он превышает время требуемое для прохождения всех тестов, но в основном принимается платформой как правильное решение.

Следующий алгоритм, немного сложнее но намного быстрее по времени работы. В более быстром решение я использую hashmap.

В видео я показал мой первый вариант оптимального алгоритма, а так же его более короткую версию.

Я планиру продолжить серию, следующая задака на очереди: Two Sum II.

Если торопишься:
00:00 Привет!
00:12 Что по условиям задачи...?
00:34 брутфорс... :)
03:43 код, двойной форлуп.
05:05 хэшмап для оптимального метода.
06:21 Ого, логика лол....
08:22 код, с хэшмапом и конфетами.
09:06 тот же код но без конфет, короче.
10:02 случайная мудрость...

PS. Я устал это монтировать..., нажмите лайк плиз Ж)))
Рекомендации по теме
Комментарии
Автор

Спасибо за понятное и четкое объяснение, больше снимай таких видео)

fbdyirw
Автор

Finally!! Someone can explain it adequately. Also, using proper English pronunciation. Thank you for great content!

blockafter
Автор

о так понятно, спасибо, было бы интересно если бы и дальше продолжали

KG-dfsd
Автор

супер, пожалуйста продолжайте, спасибо огромное!

nikolay
Автор

Расскажи о себе, кем работаешь и где работаешь итд

wxw
Автор

Большое спасибо. Очень доступно и понятно
#hashmap

Shahlagu
Автор

задачка действительно легкая, додумался использовать hashmap, но не додумался совместить эти два цикла, тут прокол)

mrzlkvvv
Автор

разве оптимальный варик не O(n^2) тоже?

cothromachd
Автор

Хм, а разве не стоило разрулить проверку на наличие ключа по другому? Ведь сложность in == O(n), а это уже цикл в цикле, что равно n*n.

takiekakmi
Автор

Подскажите, этот код будет быстрее Вашего?
def two_sum():
for i in range(len(nums)-1):
if (target - nums[i]) in nums:
return([i, nums.index(target - nums[i])])

nataliayushkevich
Автор

Почему сложение медленнее чем вычитание?

nmodonov
Автор

зачем сразу учить людей ездить из Питера в Москву через Владивосток? :) И когда вопрос стоит в оптимальности, нужно сразу критерии оптимальности задавать. Что важнее, какие ограничения. В некоторых случаях мы ограничеры длиной программы скомпилированной, в некоторых количеством ячеек памяти. В некоторых количеством перезаписи ячеек памяти (если она вообще возможна), в некоторых количеством операций, в некоторых временем выполнения программы. Из всего этого составляется формула/уравнение оптимальности и по ней идет оценка результата. Может вообще быть обратная оптимальность как в этом решении :) когда нужно использовать максимум всех ресурсов :) "вредная программа" :) Но в целом интересный контент. Никогда не приходилось синтетические задачи решать и стало интересно на что люди тратят время своей жизни.

geowatermap
Автор

Что то слишком много слов, можно раза в три сократить видео

Das.Kleine.Krokodil