Спасибо большое за видео. Есть вопрос, извиняюсь заранее если глупый.. я не очень понял как прийти к решению в первой задаче (которая #136 Single Number). Как работает оператор XOR в теории я понял, но почему именно он помогает нам получить правильный ответ для меня осталось загадкой. Я был бы очень благодарен чуть более подробному объяснению!
@kismichel1710 ай бұрын
XOR для двух одинаковых битов дает 0. Если числа в таком массиве с 1 непарным элементом представить в двоичном виде и выполнить между ними XOR (именно эти 2 действия и делает оператор ^ + ещё обратно в десятичное число преобразует), то биты у повторяющихся чисел дадут 0. Значит, в итоге мы получаем только биты уникального числа, которые ^ вернет нам в десятичном виде
@МихаилЧудаков-с6и10 ай бұрын
@@kismichel17 понял, спасибо за объяснение!
@amzi-x10 ай бұрын
@@kismichel17 Уточните пожалуйста, а если повторяющихся значений например 3 и более?
@kismichel1710 ай бұрын
3 ^ 3 ^ 3 = (3 ^ 3) ^ 3 = 0 ^ 3 = 3 Для четного числа повторений будем получать 0
@CantPickTheNameIwant3 ай бұрын
@@kismichel17 то есть этот способ работает только для четного количества повторяющихся чисел в массиве?
@Ivan-g2u3u10 ай бұрын
Я литкодер со стажем, многу сказать, что опытный литкодер - это всегда хорошо, но значимость алгоритмов не надо завышать. Часто бывало, что от меня просто требовали знать биг О, решить вопросы уровня easy и так далее. В глубь отнюдь не стоит погружаться тем, кто не имел никогда дело с программированием и кто хочет найти первую стажировку (понятно, что все зависит от компании). Да, будет неплохо прорешать 50 вопросов, но покуда вы не идете в FAANG, то не стоит переусердствовать с тем, что вам пригодится только на интервью (хотя, безусловно, могу сказать, что эта дрянь логику развивает и ты лучше начинаешь решать проблемы в принципе). Новичку гораздо важнее учить фреймворки и писать проекты, чем решать вопросы на DFS, бинарные деревья и жадные алгоритмы. Выучите массивы, хэшмапы, стэки, поинтеры, может даже слайдинг виндоу, но поберегите свое время и на проекты, которые как по мне куда важнее будут.
@MikhailBezhaneishvili10 ай бұрын
Спасибо перечитаю дома еще раз переосмыслю.
@MikhailBezhaneishvili10 ай бұрын
Спасибо. Придется гугулить DFS. FAANG где то встречал термин
@hvac_vdk10 ай бұрын
Я литкодер со стажем, но я до сих пор джун?)
@CantPickTheNameIwant3 ай бұрын
Если человек нацелен на создание продукта для, условно, решение глобальных проблем, не зациклен на работе на дядю, то алгоритмы смогут помочь в этом?
@wolroys10 ай бұрын
Боже, какая прекрасная подача контента, жду новых видосов с нетерпением. Спасибо тебе за хорошие объяснения!
@kismichel1710 ай бұрын
Спасибо за теплые слова 🥹🙏
@МаксМакс-ч8к10 ай бұрын
Тема алгоритмов конечно крайне бесячья!) Но подача хорошая: тесты, таймкоды! Спасибо, Михаил👍👍👍
@lucidsght10 ай бұрын
Привет! Хорошая подача. Для проверки дерева на сбалансированность у тебя получилась достаточно высокая сложность, глубина будет считаться множество раз на поддеревьях, которые уже были пройдены при подсчёте глубины. Можно совместить подсчёт глубины с проверкой не нарушилось ли условие, так мы закончим работу сразу если встретим несбалансированное поддерево.
@kismichel1710 ай бұрын
Привет, это правда, спасибо, что заметил 🙏
@GermanBoldyrev10 ай бұрын
Сейчас шрифт вообще кайф! Спасибо
@dino_source10 ай бұрын
Спасибо за видео. Смотрел как ты продумываешь логику алгоритма, по ходу дела переделывал для себя на С++. Потом смотрю в комментариях, кому-то на плюсах тоже захотелось. Скинул линк на гитхаб-репозиторий, если ты не против.
@kismichel1710 ай бұрын
Только за, спасибо)
@AntonEdelman10 ай бұрын
Крутое видео, давай ещё больше видео по leetcode
@RUMACTEP10 ай бұрын
Ты не влюбишься в алгоритмы, ты их возненавидишь! И да, это сложно, местами непонятно и многим не нужно
@kismichel1710 ай бұрын
От любви до ненависти, как говорится)
@wildjoe625910 ай бұрын
Посмотрел с удовольствием! Спасибо!
@kismichel1710 ай бұрын
Значит, снималось не зря)
@damiensalgado517810 ай бұрын
Блин, молодой парнишка, такой спокойный, умный, красавчик в общем. Завидую по белому, хочу конечно изучить джаву, но мне уже 35 лет...всю молодость просрал на всякую дичь, доски стругал, фуры водил, потом кое как ближе к тридцатнику запрыгнул в банк, сейчас оркл sql/pl-sql, мечтаю о джаве но понимаю что ее надо было лет с 20 учить чтоб к своим 35 хотя бы как то двигаться...эхх время, не восполнимый ресурс. Всех благ тебе, достижений и побед.
@kismichel1710 ай бұрын
Опыт в других сферах лишним не бывает, только прибавляет интереса к личности :) Спасибо за теплый комментарий. У вас все получится, не ставьте сами себе рамки!)
@ВиталийГудзь-г4ъ10 ай бұрын
а в чём такая глобальная разница? доучите и плавно переходите... вот литкоды тут да, сложно с профильными ребята соперничать
@MikhailBezhaneishvili10 ай бұрын
мне 44 и я учу не знаю что ты за свои 35 переживаешь.
@alexchto10 ай бұрын
да, старик, ты очень стар. в принципе можешь уже больше ничего не делать. в таком возрасте поздно
@dmitrypolyakov570810 ай бұрын
Все возможно! Я в 31 переехал в Канаду и тут за три года сам выучился и нашел работу программистом. Пока работаю три года по большей части на frontend в Angular, но тоже вот пару месяцев назад начал учить алгоритмы и JAVA.
@alexeim10 ай бұрын
Спасибо, Михаил! Продолжайте
@kismichel1710 ай бұрын
Благодарю 🙏
@minik226510 ай бұрын
Очень крутой контент, спасибо!
@АйдарИльясов-т3ы10 ай бұрын
Привет, интересное видео, хотим еще разбор задач с лидкода
@kismichel1710 ай бұрын
Привет, принято) 🫡
@mainframe937410 ай бұрын
База. Решение с xor - весьма элегантно, но будет работать только в случае, если в массиве есть числа дубликаты в парах и одно, которое без пары. Все задачки уровня easy. Было бы интересно посмотреть на более сложные. Думаю на собесе такое если и дадут, то только на разогрев. В большинстве случаев дают уровня "медиум"
@kismichel1710 ай бұрын
По моему опыту чаще дают как раз easy уровень, если это не собесы в Яндекс и Тинькофф иногда
@kismichel1710 ай бұрын
Но я услышал)
@АрабовМуллошараф10 ай бұрын
Замечательно. Успехов.
@kismichel1710 ай бұрын
🙏
@ainurrn10 ай бұрын
Интересно,что на литкоде в решении указывается явно garbage collector))
@eduardklygunov141210 ай бұрын
Спасибо за видео Как раз недавно тоже начал решать литкод, правда пока не очень хорошо получается ) В универе был курс по алгосам но уже все забыл
@kismichel1710 ай бұрын
Надеюсь, видео послужит неплохим стартом 💪
@galinaorlova423610 ай бұрын
Спасибо! Если бы еще алгоритмы на питоне были бы, то было бы просто отлично! 😊
@knodesec10 ай бұрын
Кстати да, самый универсальный и удобный язык для алгоритмов, и в целом спортивного программирования - это C++ :)
@Jahnt10 ай бұрын
Михаил, а Вы не могли бы объяснить поподробнее, почему в данном случае GC вызывает такую реакцию в стиле «без комментариев»? Я новичок и не понимаю, почему это плохая идея. Единственное объяснение, которое я могу предположить, это то, что авторы решений, где использован GC таким условно «читерским» способом, хотели показать, что их решение более оптимально по использованию памяти на LeetCode. Но, в сущности, чем плохо использование GC в этих примерах?
@kismichel1710 ай бұрын
Пытаться вызвать GC в коде - плохая идея. Этот механизм придумывался для автоматизации сборки мусора. Можно настраивать параметры GC, но вмешиваться в его работу не нужно. Кроме того, сам по себе вызов метода System.gc() не гарантирует начало сборки мусора Авторы таких решений повышают рейтинг не более оптимальными способами решения задачи, а за счет использования особенностей платформы, это и правда читерство)
@Jahnt10 ай бұрын
@@kismichel17 Понял. Спасибо)
@andreypopov616610 ай бұрын
leetcode это больше о натаскаться на паттерны решения определенных типов задачек. По моему не самый удачный ресурс чтобы влюбиться в алгоритмы. Например книги где алгоритмы применяются к проблемам реального мира более располагают любить алгоритмы. Имхо, на литкоде много "синтетических" задач цель которых - спросить на собеседовании и отобрать тех кто решил ее быстрее других, не думаю что в faang (и толпы компаний им подражающие) наняли тех что не решил задачки, но очень "красиво" думал над их решением.
@kismichel1710 ай бұрын
Для меня тоже сомнительная идея давать алгоритмические задачи с подобных сайтов на собесах Но надо отдать должное, LeetCode неплохо учит подбирать оптимальные структуры данных. После него на код смотришь уже по-другому
@andreypopov616610 ай бұрын
@@kismichel17 Да, согласен.
@floydmayweather693410 ай бұрын
Здравствуй, а какой у вас коммерческий опыт разработки 👀?
@kismichel1710 ай бұрын
4 года
@anton1evdokimov10 ай бұрын
Круто!💥💥💥
@АртемОсипов-ж1ъ10 ай бұрын
Не думал что прищавый парень доставит больше эстетического и визуального кайфа, чем от полуголой девушки из тик тока 😅😂
@kismichel1710 ай бұрын
Комплимент сомнительный, но окэй
@MikhailBezhaneishvili10 ай бұрын
Все хорошо один вопрос как писать тесты(((. Как понимать что писать?
@kismichel1710 ай бұрын
Ох, тема для отдельного видео, записал себе)
@wladdovy437010 ай бұрын
Уже лет 10 программирую. Никогда не любил подобные алгозадачи: они бессмысленны и отвлекают от общего дизайна приложения. Ещё их очень сложно читать и отлаживать - а код мы всё же чаще читаем, чем пишем. Если есть возможность это "спрятать" или переложить на стандартную библиотеку, то лучше так и поступить. В любом случае, спасибо автору за хороший материал.
@shamilsalikhov874910 ай бұрын
Как с тобой связаться?
@kismichel1710 ай бұрын
В описании канала есть тг t.me/Kismichel
@dmitryNaumov.10 ай бұрын
Подскажи, что за шрифт у тебя?)
@kismichel1710 ай бұрын
Если имеешь ввиду шрифт IDEA, то стандартный от JetBrains Тема plugins.jetbrains.com/plugin/15727-xcode-theme
@dmitryNaumov.10 ай бұрын
@@kismichel17 Спасибо!)
@qrthack10 ай бұрын
1 0 1 мой друг, у меня такой вопрос, коммерческого опыта нет, знаю C, изучаю постоянно Computer Science. Хочу в backend, выбираю между Java, Golang что посоветуешь, чтобы легче было устроиться на работу?
@romAYAYANI10 ай бұрын
Golang относительно новый яп и там, скорее всего, меньше конкуренция. Смотрел недавно вакансии в озон, так там каждая 3-я вакансия на golang, они его почти во все продукты пихают
@ViktorAr202310 ай бұрын
Выбирай сферу. От языка не зависит уровень сложности попасть на работу!!!!! Легче устроится в тех.поддержку и потом перевести супстя года в то направление, которое интересно
@kismichel1710 ай бұрын
Привет) Все хвалят свое болото, но я бы выбирал в таком порядке по приоритетам: 1. Заходишь на hh.ru и смотришь количество вакансий по интересующим языкам. Поможет оценить востребованность языка на рынке 2. Посмотреть пару подкастов про каждый язык (АйтиБорода, Хекслет, что-нибудь ещё подобное). Помогает понять основные сферы применения, плюсы/минусы языка 3. Если позволяет время, попробовать пописать на каждом. Может понравится какой-то язык так сильно, что потом на другом писать не заставишь)
@hvac_vdk10 ай бұрын
Знаешь си - пиши на си, учи си, потому как если задаешь такие вопросы - тебе еще учиться и учиться. Если можешь в си - можешь в любой другой ЯП после небольшого вхождения в его синтаксис.
Да уж. До ксора на собеседовании я бы точно додумался. Вообще как до этого можно додуматься? Это просто надо знать. И скорее всего какой-нибудь школотрон, изучающий паскаль знает это лучше, чем я.
@kismichel1710 ай бұрын
Согласен, но все, что мы знаем - это тоже информация, которую когда-то запомнил наш мозг Почему бы между изучением языков/фреймворков не уделить время дискретной математике и теории чисел?)
@a7kerkh10 ай бұрын
Бро скажи какая тема у тебя плиз?
@kismichel1710 ай бұрын
plugins.jetbrains.com/plugin/15727-xcode-theme
@ANDREYQIWS10 ай бұрын
Можно с тобой дополнительно позаниматся?
@kismichel1710 ай бұрын
Привет) Я занимаюсь менторством, но алгоритмы не затрагиваю, если что) Можешь написать мне в личку, ссылка на тг в описании канала
@zxcghoul883710 ай бұрын
бро пожертвуй деньги в приюты если ты не способен сам обучаться. всё равно отсутствие этого перка тебе не даст работу
Зачем нужны алгоритмы, если все эти задачи с лихвой покрываются и автоматизируются искусственным интеллектом?
@kismichel179 ай бұрын
Нейросети, которые называют «искусственным интеллектом», не умеют сами думать, они просто перерабатывают уже существующую информацию и строят взаимосвязи. Любую сетку нужно обучать и править ошибки. Как можно научить чему-то, если сам не разбираешься в теме? Или лучше, как можно понять, что нейросеть ошибается, если для самого тема плохо понятна?
@mndtr09 ай бұрын
@@kismichel17 сделать другую сеть, которая будет перепроверять информацию через интернет и свою базу знаний. Да, будет какой-то уровень ошибок, но маленький, и в любом случае достаточный для решения реальных задач и проблем
@Kiyanti10 ай бұрын
Что значит 1 0 1? Какое-то интернет приветствие?
@kismichel1710 ай бұрын
Рандомная фраза для приветствия, без потайных смыслов)
@bootstrapers10 ай бұрын
У нас есть два битА, применяем к ним XOR и получаем УНИКАЛЬНЫЙ, ОТЛИЧНЫЙ ОТ НУЛЯ(кого??) Что ты несешь то вообще такое?
@kismichel1710 ай бұрын
Немного оговорился, нужно было уточнить, что это так при разных битах (0 и 1). Дальше рассказываю про ситуацию с совпадающими битами, и становится понятно, что я имел ввиду. Плюс внизу есть более строгая формулировка Под другим комментарием разобрал работу оператора подробнее, персонально для вас продублирую: XOR для двух одинаковых битов дает 0. Если числа в таком массиве с 1 непарным элементом представить в двоичном виде и выполнить между ними XOR (именно эти 2 действия и делает оператор ^ + ещё обратно в десятичное число преобразует), то биты у повторяющихся чисел дадут 0. Значит, в итоге мы получаем только биты уникального числа, которые ^ вернет нам в десятичном виде
@kismichel1710 ай бұрын
А вообще, если так не нравится видео, зачем второй день его смотреть и писать гневные комментарии?)
@bootstrapers10 ай бұрын
@@kismichel17 а как ты хотел? Ничего в этом мире не происходит бесследно. Это тебе так, нано-порция, возможно в меру разумной критики - тебе остается только сделать верные выводы, или просто забить болт.
@bootstrapers10 ай бұрын
Забавно как чел, сам еще толком ничего не знающий и жующий хлеб, учит других.
@kismichel1710 ай бұрын
Ничего не понял, ушел жевать хлеб
@crackinglad764410 ай бұрын
Фред, неужто ты?
@bootstrapers10 ай бұрын
@@kismichel17 с тебя следующее видео, в котором ты рассказываешь о том, как ты применяешь описываемые алгоритмы в продакшне с примерами.
@WounderVaflel10 ай бұрын
Стасян - такой себе пример для подражания.
@kismichel1710 ай бұрын
От него у меня только вступительная фраза) Если есть хорошие предложения, на что можно заменить, с радостью поменяю)
@UserSo4reUsu75ry10 ай бұрын
Не влюблюсь, потому что алгоритмы не дают мне пройти собеседования
@kismichel1710 ай бұрын
Не можешь победить - возглавь (влюбись) 😁
@Disorrder10 ай бұрын
После «101 ютуб» желание смотреть пропало
@nazdender10 ай бұрын
ну так не смотри)
@instaff21510 ай бұрын
Вроде и не заставляют, смело шагай дальше :)
@kismichel1710 ай бұрын
Там «101, друзья»)
@АрсенийСазонов-р8з10 ай бұрын
После 101 желание смотреть наоборот появилось
@edxnull344810 ай бұрын
Тебе уже шизится Стас, лечись, там же чел сказал 101, друзья
@quadrant69123 ай бұрын
Кликбейт(
@igor-volchenok10 ай бұрын
Полезное видео! Но есть одна ошибка: правильно не Java a JavaScript. Не благодари
@serser543310 ай бұрын
При чем тут вообще JS, дядя?
@kismichel1710 ай бұрын
Точняк)
@yhooi7 ай бұрын
currNode = head while currNode: nextNode = currNode.next while nextNode and currNode.val == nextNode.val: nextNode = nextNode.next currNode.next = nextNode currNode = nextNode return head Изящнее? да)
@yhooi7 ай бұрын
Или вот ещё, не благодари,) left, right = 0, len(nums) while left < right: mid = left + (right - left) // 2 if nums[mid] == target: return mid elif nums[mid] < target: left = mid + 1 else: right = mid return left
@yhooi7 ай бұрын
И спасибо за контент, 1 задачу решил не через XOR до тебя =)
@Zaker-o3c10 ай бұрын
Алгоритмы? Круто, но как насчёт пойти помыться?
@kismichel1710 ай бұрын
После таких комментариев и правда хочется помыться
@Zaker-o3c10 ай бұрын
@@kismichel17 так мойся, ботан, ха
@Zaker-o3c10 ай бұрын
Ты чо смысловой дофига
@TheIvanix10 ай бұрын
Михаил, добрый день. Есть плагин для идеи очень удобно.
@kismichel1710 ай бұрын
Добрый) Не очень понял, вы про мои плагины спрашиваете или хотите своим поделиться?)
@TheIvanix10 ай бұрын
@@kismichel17 извините сразу не сказал! Хочу поделиться своим, плагин лееткод называется)