Решаем задачи с LeetCode. Программирование на Python. Алгоритмическая качалка с Валерой Петровым
Вставка
- Опубліковано 28 кві 2022
- Валера каждый раз пробует что-то новое. В третьем выпуске он решил поэкспериментировать с Python. Задачка простая, поэтому выпуск получился коротким, но интересным. Если у тебя есть решение элегантнее и интереснее, то пиши его в комментарии.
Ссылка LeetCode: leetcode.com/problems/find-al...
Вакансия Python-разработчик: clck.ru/37EWZx
Вакансия Системный аналитик: clck.ru/37EWcZ
Вакансия Бизнес аналитик: clck.ru/37EWfD
Так что обязательно подписывайтесь.
Актуальные вакансии: career.technokratos.com/
Telegram: t.me/technokratos
ВКонтакте: technokratos
#LeetCode #Python #Code #Программирование #Алгоритмы
🔥Нанимаем разработчиков и аналитиков на классный проект:
Вакансия Python-разработчик: clck.ru/37EWZx
Вакансия Системный аналитик: clck.ru/37EWcZ
Вакансия Бизнес аналитик: clck.ru/37EWfD
прикольное видео, все прекрасно объяснил, часто смотрю решение задач на Leetcode за едой)
Второе решение (с множеством) не соответствует критериям (без доп. памяти). Когда вы создали множество disappearedNums, вы использовали память под хэш-таблицу (грубо можно сказать O(n) ). Потом, когда при возврате результата вы преобразуете множество в список, вы используете память под список (т.е. еще O(n) ).
По памяти на самом деле второе решение даже хуже первого, ибо множество требует больше памяти, чем список.
Спасибо за видео, мне нравится смотреть ваши решения и будто получаю какие то тайные знания)
set(range(1, len(nums) + 1)) - set(nums)
return list(set(range(1,len(nums)+1))-set(nums)) так же решил
Почему вы именно в set обернули ?
@@namesurname638т.к. в множествах есть вычитание друг из друга.
@@namesurname638,чтобы не учитывать копии чисел ,так будет проще определить диапазон
я не могу найти задачи для питона, там нету фильтров
return [i for i in range(1, len(nums) + 1) if i not in set(nums)]
Последнее решение не так хорошо оптимизировано как первое. Плюс по времени хуже и по памяти так же(как в первом). Зачем тогда заливать этот отрывок? Без негатива, просто опешил....
1 задача через словарь ,
a=dict()
If i in a:
a[I]+=1
Else:
a[I]=1
И потом for k,v in a.items():
If v==0:
print(k)
если решение быстрее 97% пользователей, но затраченной памяти больше чем у 95% пользователей, это хорошо или плохо?)
Для разных ситуаций может быть по разному 🙂
Зависит от страны где вы пишете код.
Если вы в Индии то это очень хорошо и вы приняты на работу.
если вы в Америке то это очень плохо и вы уволены :D
Код новичка: 👻
custom = [4,3,1,2,8,7]
output = []
for i in range(1, max(custom)+1):
if i not in custom:
output.append(i)
print(output)
это сколько ты python учил в тот момент?
неделю@@virnage9759
Ты считаешь это плохим решением?@@virnage9759
def find_disappeared_numbers(arr):
num_dict = {}
result = []
for num in arr:
num_dict[num] = True
for i in range(1, len(arr) + 1):
if i not in num_dict:
result.append(i)
return result