Обрати внимание, что доступно полное оглавление! Ну и подпишись на мою Телегу t.me/mikhaylovgleb 0:13:30 Palindrome Number (divmod) 0:19:21 Contains Duplicate (hash) 0:21:42 Remove Linked List Elements (linked list) 0:33:54 Counting Bits (bitwise) 0:42:14 Unique Email Addresses (hash) 0:47:24 Maximum Average Subarray I (sliding window) 1:00:36 Move Zeroes (two pointers) 1:08:31 Valid Perfect Square (binary search) 1:17:13 Add Digits (divmod) 1:24:06 Student Attendance Record I (string) 1:30:18 Binary Tree Postorder Traversal (tree) 1:40:40 Is Subsequence (stack) 1:47:17 Symmetric Tree (tree) 2:17:30 Plus One (divmod) 2:23:56 Meeting Rooms (sorting) 2:33:45 Middle of the Linked List (linked list) 2:40:16 Check If N and Its Double Exist (hash) 2:46:11 N-th Tribonacci Number (dp) 2:52:58 Binary Search (binary search) 2:56:28 Pascal's Triangle (dp) 3:01:11 Single Number (bitwise) 3:05:48 Peak Index in a Mountain Array (binary search) 3:19:21 Valid Palindrome (two pointers) 3:26:55 Reverse String (two pointers) 3:30:58 Sqrt(x) (binary search) 3:58:46 Find Numbers with Even Number of Digits (math) 4:02:33 Find the Difference (hash) 4:07:34 Remove All Adjacent Duplicates In String (stack) 4:16:28 Reverse Words in a String III (two pointers) 4:20:36 First Bad Version (binary search) 4:26:00 Guess Number Higher or Lower (binary search) 4:31:21 Search Insert Position (binary search) 4:33:52 Power of Four (math) 4:38:37 Valid Anagram (hash) 4:40:01 Can Place Flowers (array) 4:47:02 Minimum Depth of Binary Tree (tree) 4:56:08 Backspace String Compare (stack) 5:00:13 Linked List Cycle (linked list) 5:07:32 Power of Two (math) 5:10:20 Reverse Linked List (linked list) 5:18:43 Hamming Distance (bitwise) 5:22:24 Missing Number (hash) 5:26:06 Binary Tree Paths (tree) 5:33:15 Convert Sorted Array to Binary Search Tree (tree) 5:42:28 Merge Two Binary Trees (tree) 5:58:00 Flipping an Image (two pointers) 6:06:36 Two Sum II - Input Array Is Sorted (two pointers) 6:11:40 Verifying an Alien Dictionary (hash) 6:35:56 Valid Mountain Array (array) 6:46:17 Roman to Integer (math) 6:57:20 License Key Formatting (string) 7:10:11 Assign Cookies (sorting) 7:21:07 Majority Element (hash) 7:23:55 Same Tree (tree) 7:28:22 Binary Tree Inorder Traversal (tree) 7:34:12 Summary Ranges (array) 7:48:50 Delete Node in a Linked List (linked list) 7:52:57 Kids With the Greatest Number of Candies (array) 7:57:02 Reverse Vowels of a String (two pointers) 8:01:27 Sum of Left Leaves (tree) 8:06:10 Add Binary (divmod) 8:11:58 Longest Palindrome (hash) 8:32:36 Binary Tree Preorder Traversal (tree) 8:35:30 Length of Last Word (string) 8:48:28 Max Consecutive Ones (dp) 8:53:50 Longest Continuous Increasing Subsequence (array) 9:00:29 Remove Duplicates from Sorted Array (two pointers) 9:10:05 Running Sum of 1d Array (array) 9:11:22 Isomorphic Strings (hash) 9:19:06 Intersection of Two Arrays (hash) 9:22:28 Contains Duplicate II (sliding window) 9:32:21 Merge Two Sorted Lists (linked list) 9:37:29 Longest Common Prefix (string) 9:47:16 Two Sum (hash) 9:48:49 Valid Parentheses (stack) 9:54:34 Search in a Binary Search Tree (tree) 9:58:31 Convert Binary Number in a Linked List to Integer (linked list) 10:10:23 Number of 1 Bits (bitwise) 10:11:42 Range Sum of BST (tree) 10:17:30 Maximum Depth of Binary Tree (tree) 10:19:24 Sort Array By Parity (two pointers) 10:22:18 Monotonic Array (array) 10:25:47 Two Sum IV - Input is a BST (tree) 10:30:25 Average of Levels in Binary Tree (tree) 10:33:44 Remove Element (two pointers) 11:02:22 Find All Numbers Disappeared in an Array (hash) 11:03:49 Implement strStr() (string) 11:09:41 Invert Binary Tree (tree) 11:15:34 Closest Binary Search Tree Value (tree) 11:22:35 Squares of a Sorted Array (two pointers) 11:25:48 Jewels and Stones (hash) 11:27:09 Remove Duplicates from Sorted List (linked list) 11:33:27 First Unique Character in a String (hash) 11:35:29 Ransom Note (hash) 11:40:49 Fizz Buzz (math) 11:43:28 Fibonacci Number (dp) 11:44:52 Detect Capital (string)
Начал смотреть в прямом эфире и на сегодня досмотрел только до половины) Использую для подготовки к собеседованиям, когда надо вспомнить как решать алгоритмы. Делать это "вместе с тобой" очень круто. В 22-м ты мне уже помог с успешной подготовкой к собеседованию. Вот сейчас готовлюсь снова)
@@backend404 Добрый день, да. Получил 3 оффера. Один внутри компании с переходом с миддла на синьора. На нем и остановился. Не везде спрашивали алгоритмы, но определенно они помогли.
Посмотрел от начала до конца. Спасибо за такой контент. Теперь я действительно не боюсь easy, который по началу внушал ужас. Успехов тебе во всех дальнейших начинаниях. Ты учишь английский - ты попадешь туда, куда хочешь. Ты крут))
Клевый стрим. Пытаюсь себя заставить по утрам решать задачки. Когда то давно этот стрим мне попался в рекомендах, и вот сейчас решил его полностью посмотреть. Каждое утро смотрел по чуть-чуть + сам что-то решал после этого. Понравилось, что к концу стрима я уже перерешивал какие-то твои решения другими способоми, т.е. базу свою наработал. В общем, респект за стрим, буду смотреть медиум!
Марафон улетный. Просто топ! Ничего подобного не видел. И обратите внимание на таймкоды! Обычно в описание никто не смотрит. Спасибо! п.с. Глеб, продублируй таймкоды в сообщении и закрепи. Что-то мне подсказывает, так будет лучше.
спасибо, нужно бооольше таких видео, в свободное время по минут 10-20-30 смотрю, решаю задачки в уме, потом смотрю твое понятное решение, какие то фишки в коде почерпываю, жду аналогично на медиум уровне :) еще предложение по стриму, сделай вебку не круглой а квадратной/прямоугольной (браузер прямоугольный, чат прямоугольный, а твоя вебка круглая, по углам от круга много пространства, плюс вебка залезает чуть-чуть на чат и браузер) :)
Такой человек позитивный. Я обычно на задачах с тикающим глазом 😂. От комментариях просто не могла остановиться улыбаться порой… «что можно сделать вот с этой вот дрянью»
6:35:56 Valid Mountain Array (array) 1) Склоном считается линия горы из трёх точек, концы которой одна выше, а другая ниже середины. 2) В правильной горе все линии кроме одной будут являться склонами. 3) Просто берём и считаем количество линий, не являющихся склонами. P.S. А также нужно исключить ущелье.
По моему, это должно работать (за синтаксис не ручаюсь): count = i = 0 while i < len(arr) - 2: i += 1 if arr[i-1] > arr[i] < arr[i+1]: return False if arr[i-1] = arr[i+1]: count += 1 return count == 1
за видео огромнейший лайк, именно благодаря этому каналу я стал активно решать литкод и что-то начало получаться но на 4:18:43 вот мне прям не нравится такое решение, оно читерское какое то, со всеми этими Сплит... Вот так чисто алгоритмически: class Solution: def reverseWords(self, s: str) -> str: stopper = 0 driver = 0 new_s = [] for driver in range(len(s)): if (s[driver] == ' ') : checkpoint = driver while stopper < driver: new_s.append(s[driver-1]) driver -= 1 new_s.append(' ') stopper = checkpoint + 1 driver = checkpoint if (driver + 1 == len(s)): while stopper
2:23:56 Meeting Rooms (sorting) 1) Отсортировать вложенные списки. 2) Склеить все списки в один. 3) Проверить, изменится ли список, если его отсортировать теперь.
На Javascript, если не ошибаюсь, можно так: arr.sort() arr.flat() return (arr == arr.sort()) В синтаксисе не уверен, скобки наугад ставлю )) Практики ноль, поэтому чтобы хоть что-то написать - мне обычно приходится гуглить каждый оператор, как он там правильно оформляется.
А с Python вообще дела не имел. Смотрю на твой код - вроде всё понятно. Но знаю, сам на нём фиг что напишу сходу, на каждой скобочке застряну. Да, конечно, синтаксис популярного языка (хотя бы один его вариант) можно освоить за пару дней. А потом так же успешно забыть через месяц в отсутствие практики ))
по 101: var isSymmetric = function(root) { function m(a,b){ if(!a&&!b)return true if(!a||!b)return false if(a.val!=b.val)return false return m(a.left,b.right)&&m(a.right,b.left) } return m(root.left,root.right) } на питоне аналогично - в некотором смысле это тоже задача на два указателя
По минимальному квадрату числа и делению на 2. Это 2 в степени 2 в худшем случае. Во всех остальных больше делить можно. Если от 3, то сразу на 3 делить можно начальную длину.
27:21 А почему в этой задаче вы говорите про рекурсию , если просто циклом проходите по листу? Рекурсивный обходы это когда функция вызывает саму себя, разве не так?
Замечательный контент! Спасибо огромное! Можно ли эту запись 24/7 запустить? Это же первый в мире алгоритмический канал будет, с постоянным бомондом 🐆🐆🐆
832. Flipping an Image Прикольно можно инвертировать было через xor function flipAndInvertImage(image: number[][]): number[][] { return image.map(row => row.reverse().map(b => b ^ 1)); };
56:53 первое решение *Maximum Average Subarray* там же *Time Complexity* в худшем случае O(nk) или O(n^2) если k = n, т.е. нелинейное, т.к. ты каждый раз считаешь сумму очереди?
Глебас, я слежу за твоим литкодом)) ты в крысу решаешь задачи🤣 . Давай еще один марафон такой же. Пожалуйста ))) Твои объяснения очень сильно помогают изучать алгосы. Думаю я такой не один кто хочет еще марафон. Давай мы тебе скинемся донатами или еще как-то забайтим на такой движ) чтобы не за просто так
Лол!)) Спалился) Я работаю над содержанием курса по алгосам. Спасибо за теплые слова! Марафон пока не планирую, но курс кажется увидит свет в ближайшем будущем)
День за днем я смотрю это видео, когда-то полчаса, когда-то час. Однажды я прилег на диван и уснул, было трудно найти место на котором я вырубился. Я увеличиваю свою насмотренность и знаю, что следующий день не будет пустым так как видео все еще не досмотрено, я купил 30 банок энергетиков по скидке, я встаю с кровати, открываю баночку и начинаю смотреть. Моя язва в моем желудке прогрессирует точно также как и насмотренность на алгоритмы, затем я иду решать самые простые задачки на литкоде и кодварсе, ведь за две недели изучения питона на большее претендовать сложновато. Я знаю, что однажды я досмотрю, но не унываю, ибо есть еще один марафон на задачки посложнее, но что случится когда я досмотрю и его... Об этом думать так же страшно как и методах лечения прогрессирующей язвы.
19:40 пример с борщом гениальный, а то мне показалось, что решить многие задачи с лёту выглядит нереалистичным, если не знаешь определенные паттерны, алгоритмы и хитрости, но если изучить, что пишут в обучающем разделе или решения, то появляется понимание. Мне вот интересно постоянно, эти задачки придумывают под конкретные подходы решения или была сначала задача, а решения люди находят потом? :)
@@nkjhk9772 А понял! Обрати внимание, что я сразу этот массив распаковываю в две отдельные переменные: x и d. И таким образом у меня только числа и нет массивов
Привет! Никакие). Эти задачи нужно учиться решать если собираешься на собесы, где их спрашивают, например в Гугл, амазон, яндекс и т.д. Просто так их учиться решать не надо, если только для собственного удовольствия.
У меня просто есть такая проблема, что я вроде понимаю, что написано, но сам так написать не могу, не считая прям совсем банальный код. Поможет ли решение задач на литкоде исправить ситуацию?
Привет, у меня такой вопрос, коммерческого опыта нет, знаю C, Python, люблю Computer Science. Хочу в backend, выбираю между Python, Java, C#, Golang что посоветуете, чтобы легче было устроиться на работу?
Учитывая, что python уже имеется, то для ускорения процесса нахождения работы лучше с ним и продолжать. Также добавлю, что выбор технологии (и профессии) не стоит делать только основываясь на то, что уже знаешь и на спрос на рынке. Нужно обязательно учитывать и личные предпочтения! Что больше нравится? К чему лежит душа? Это очень важный фактор для выбора того, чем хочешь заниматься. Чтобы выбрать нужно анализировать комплекс факторов: личные предпочтения, текущие знания, текущую жизненную ситуацию, состояние рынка.
@@GlebMikhaylov Не подскажешь, пожалуйста, в этой задаче - 3:05:48 Peak Index in a Mountain Array (binary search) Я написал такое решение def peakIndexInMountainArray(self, arr: List[int]) -> int: middle = len(arr) // 2 while middle < len(arr): if arr[middle] > arr[middle-1] and arr[middle] > arr[middle+1]: return middle elif arr[middle] < arr[middle-1]: middle = middle - 1 else: middle = middle + 1 Алгоритмическая сложность этого решения O(n) ? Или всё же O(logn) Я просто ещё только изучаю алгоритмы и мне сложно иногда определить сложность. Тем более бинарный поиск написать. P.S. Спрашивал у ChatGPT, он написал что O(logn), но я ему не доверяю))
@@heybeachMIN Я не вижу чтобы в while ты делил на 2 и тем самым уменьшал пространство поиска вдвое на каждом шаге. У тебя просто отнимается или прибавляется единичка. И поэтому это линейное время, а не логарифмическое
@@GlebMikhaylov а я короче подумал, что типа пик же всегда по середине, и одноразовое деление на два должно хватить, а там просто уменьшать и прибавлять)
@@GlebMikhaylov тоже интересная тема!, я вот пока не могу приноровиться к sql задачам на LeetCode, очень не удобный там вывод результата!, пока только easy problem получается. Будет очень интересно с тобой порешать, посмотреть твои лайвхаки!=), маякни как что)))
В ведущие IT компании России и мира не нанимают без навыка решения таких задач: они используются для отбора кандидатов. Такова реальность, а насколько они полезны в самой работе это в данном случае не важно, т.к. без них не будет работы (в крупной и известной IT компании). Ну и второй момент, если втянуться в эти задачи, то это довольно прикольно и оказывает положительный эффект на мозг, как фитнес. Я вот их раньше тоже ненавидел, а сейчас полюбил и получаю от них удовольствие).
@@GlebMikhaylov Про крупные компании я не согласен, с остальным согласен) Что можно считать крупной компанией?) Например я разрабатывал аналитический софт для пепсико, аддидаса и для американских страховых компаний. Сейчас я строю систему аналитики для одного из поставщиков самоката и на основной работе разрабатываю микросервисы для криптокомпании. Являются ли они крупными? Думаю, что да) За 4 года коммерческой разработки у меня спрашивали за алгоритмы только на позицию джуна) В гугл, амазон и фейсбук я не пойду из-за внутренних своих убеждений, и знаю что там уже дрочево)
Нет, это easy задачи, скорее это подготовительный этап. Секция алгоритмов в Яндекс это как минимум medium. По medium тоже будет марафон, ближе к новому году думаю). А может быть раньше).
@@just__did__it Я думаю, что скорее всего там тоже минимум medium, т.к. алго секция она на всех уровнях (от стажера до синьора) плюс минус одинаковая. И со стажера на самом деле кроме алгоритмов спросить нечего, поэтому там и норм уровень требуют.
@@just__did__it Пока еще нет, вот только планируется следующий medium марафон пока). У меня много тестовых по дс, аналитике и sql, среди них есть сложные, но это совсем другое, это не алгоритмы
@@caffeinejavacode1475 Привет! Смотрел вручную коменты и увидел твой). То что тяжело решать easy это абсолютно нормально! Когда учишься, то нужно начинать с того, чтобы смотреть на готовый ответ, и уже потом кодить. Твоя ощуение выглядит следующим образом: 80% разбор решения и их имплементация, 15% перерешивание известных тебе задач, 5% попытки решить новые самому
Говоришь нужно учиться решать. А вот если смотреть видео с решением задачи и его самим писать тут же, то это нормальное обучение или прям стоит самим сидеть, даже тупить но решить своим умом?
нет, сидеть и мучиться не нужно. Нужно именно выстроить тренировочный процесс. И лучше всего так: открываешь задачу, читаешь, если сразу видишь решение, то пробуешь закодить (если с не получилось, то ничего страшного). Если не видишь, то смотришь решение, понимаешь, и потом сам кодишь. Время от времени можно устраивать себе челенджи, где целенаправленно сидишь и пытаешься сам решить задачу. Но в обычный день ты просто учишься, разбираешь задачи и набираешься опыта, а не истязаешь себя)).
Обрати внимание, что доступно полное оглавление! Ну и подпишись на мою Телегу t.me/mikhaylovgleb
0:13:30 Palindrome Number (divmod)
0:19:21 Contains Duplicate (hash)
0:21:42 Remove Linked List Elements (linked list)
0:33:54 Counting Bits (bitwise)
0:42:14 Unique Email Addresses (hash)
0:47:24 Maximum Average Subarray I (sliding window)
1:00:36 Move Zeroes (two pointers)
1:08:31 Valid Perfect Square (binary search)
1:17:13 Add Digits (divmod)
1:24:06 Student Attendance Record I (string)
1:30:18 Binary Tree Postorder Traversal (tree)
1:40:40 Is Subsequence (stack)
1:47:17 Symmetric Tree (tree)
2:17:30 Plus One (divmod)
2:23:56 Meeting Rooms (sorting)
2:33:45 Middle of the Linked List (linked list)
2:40:16 Check If N and Its Double Exist (hash)
2:46:11 N-th Tribonacci Number (dp)
2:52:58 Binary Search (binary search)
2:56:28 Pascal's Triangle (dp)
3:01:11 Single Number (bitwise)
3:05:48 Peak Index in a Mountain Array (binary search)
3:19:21 Valid Palindrome (two pointers)
3:26:55 Reverse String (two pointers)
3:30:58 Sqrt(x) (binary search)
3:58:46 Find Numbers with Even Number of Digits (math)
4:02:33 Find the Difference (hash)
4:07:34 Remove All Adjacent Duplicates In String (stack)
4:16:28 Reverse Words in a String III (two pointers)
4:20:36 First Bad Version (binary search)
4:26:00 Guess Number Higher or Lower (binary search)
4:31:21 Search Insert Position (binary search)
4:33:52 Power of Four (math)
4:38:37 Valid Anagram (hash)
4:40:01 Can Place Flowers (array)
4:47:02 Minimum Depth of Binary Tree (tree)
4:56:08 Backspace String Compare (stack)
5:00:13 Linked List Cycle (linked list)
5:07:32 Power of Two (math)
5:10:20 Reverse Linked List (linked list)
5:18:43 Hamming Distance (bitwise)
5:22:24 Missing Number (hash)
5:26:06 Binary Tree Paths (tree)
5:33:15 Convert Sorted Array to Binary Search Tree (tree)
5:42:28 Merge Two Binary Trees (tree)
5:58:00 Flipping an Image (two pointers)
6:06:36 Two Sum II - Input Array Is Sorted (two pointers)
6:11:40 Verifying an Alien Dictionary (hash)
6:35:56 Valid Mountain Array (array)
6:46:17 Roman to Integer (math)
6:57:20 License Key Formatting (string)
7:10:11 Assign Cookies (sorting)
7:21:07 Majority Element (hash)
7:23:55 Same Tree (tree)
7:28:22 Binary Tree Inorder Traversal (tree)
7:34:12 Summary Ranges (array)
7:48:50 Delete Node in a Linked List (linked list)
7:52:57 Kids With the Greatest Number of Candies (array)
7:57:02 Reverse Vowels of a String (two pointers)
8:01:27 Sum of Left Leaves (tree)
8:06:10 Add Binary (divmod)
8:11:58 Longest Palindrome (hash)
8:32:36 Binary Tree Preorder Traversal (tree)
8:35:30 Length of Last Word (string)
8:48:28 Max Consecutive Ones (dp)
8:53:50 Longest Continuous Increasing Subsequence (array)
9:00:29 Remove Duplicates from Sorted Array (two pointers)
9:10:05 Running Sum of 1d Array (array)
9:11:22 Isomorphic Strings (hash)
9:19:06 Intersection of Two Arrays (hash)
9:22:28 Contains Duplicate II (sliding window)
9:32:21 Merge Two Sorted Lists (linked list)
9:37:29 Longest Common Prefix (string)
9:47:16 Two Sum (hash)
9:48:49 Valid Parentheses (stack)
9:54:34 Search in a Binary Search Tree (tree)
9:58:31 Convert Binary Number in a Linked List to Integer (linked list)
10:10:23 Number of 1 Bits (bitwise)
10:11:42 Range Sum of BST (tree)
10:17:30 Maximum Depth of Binary Tree (tree)
10:19:24 Sort Array By Parity (two pointers)
10:22:18 Monotonic Array (array)
10:25:47 Two Sum IV - Input is a BST (tree)
10:30:25 Average of Levels in Binary Tree (tree)
10:33:44 Remove Element (two pointers)
11:02:22 Find All Numbers Disappeared in an Array (hash)
11:03:49 Implement strStr() (string)
11:09:41 Invert Binary Tree (tree)
11:15:34 Closest Binary Search Tree Value (tree)
11:22:35 Squares of a Sorted Array (two pointers)
11:25:48 Jewels and Stones (hash)
11:27:09 Remove Duplicates from Sorted List (linked list)
11:33:27 First Unique Character in a String (hash)
11:35:29 Ransom Note (hash)
11:40:49 Fizz Buzz (math)
11:43:28 Fibonacci Number (dp)
11:44:52 Detect Capital (string)
Думаю этот комментарий можно закрепить, чтобы таймкоды было сразу видно) Спасибо за марафон!
респект Глебушке посмотрел на одном дыхании очень круто рад что когда то нашел этот канал, теперь алгосы не такие страшные
вы просто смотрели?
Благодаря вашему каналу обучаюсь, все очень доступно и интересно! Очень счастлива что нашла этот канал
как успехи?
Посмотрел всё от и до! Кайф, Глеб, рад, что нашел тебя на ютубе, какой же ты хороший!
Красавчик, очень полезный контент! Найден ещё один бриллиант среди каналов подобной тематики 🥳
о как. тогда делись остальными аналогичными бриллиантами. кроме жеки сулейманова: его уже знаю.
Начал смотреть в прямом эфире и на сегодня досмотрел только до половины) Использую для подготовки к собеседованиям, когда надо вспомнить как решать алгоритмы. Делать это "вместе с тобой" очень круто. В 22-м ты мне уже помог с успешной подготовкой к собеседованию. Вот сейчас готовлюсь снова)
Здравствуйте, у вас получилось трудоустроиться?
@@backend404 Добрый день, да. Получил 3 оффера. Один внутри компании с переходом с миддла на синьора. На нем и остановился. Не везде спрашивали алгоритмы, но определенно они помогли.
Посмотрел от начала до конца. Спасибо за такой контент. Теперь я действительно не боюсь easy, который по началу внушал ужас. Успехов тебе во всех дальнейших начинаниях. Ты учишь английский - ты попадешь туда, куда хочешь. Ты крут))
Спасибо!! 🐆
офигенно, когда после середины марафона начинаешь решать быстрее Глеба, потом самодовольно думаешь, ну догадается он или нет
Приятное повествование, про контент я вообще молчу - пушка, ракета
Solved 18 in the first day with revieving most frequent answers. Planing to solve all in 5 days. Thanks for such content
Клевый стрим. Пытаюсь себя заставить по утрам решать задачки. Когда то давно этот стрим мне попался в рекомендах, и вот сейчас решил его полностью посмотреть. Каждое утро смотрел по чуть-чуть + сам что-то решал после этого.
Понравилось, что к концу стрима я уже перерешивал какие-то твои решения другими способоми, т.е. базу свою наработал.
В общем, респект за стрим, буду смотреть медиум!
Глеб, Благодарю за такие усилия и качественный контент! Пожалуйста, продолжай!
Мужик, ты просто лучший! )) задача про Verifying an Alien Dictionary мерзость еще та
Это уму не постижимо! Теперь с уверенностью можно сказать - Глеб, это Елбасы DS!
Глеб, это было классно! Спасибо! Перехожу с тобой к middle
Прорешала все задачки по списку Глеба, параллельно посматривала стрим, кайфанула. Спасибо большое за материал. Теперь не так страшно идти на собесы ❤
так это не "порешала". вставила готовые решения, как свои.
@katesenko9524 Как успехи? Устроилась?
@@404Negative она возможно сначала пыталась сама решить и потом уже смотрела решение Глеба.
Thank you very much! That is awesome addition to learning programming languages such as Java, Python, TS, and Rust. I love this video! Keep it up!
Марафон улетный. Просто топ! Ничего подобного не видел.
И обратите внимание на таймкоды! Обычно в описание никто не смотрит.
Спасибо!
п.с. Глеб, продублируй таймкоды в сообщении и закрепи. Что-то мне подсказывает, так будет лучше.
У бороды было)
@@titanovsky ХЗ кто это такой. Название канала скажи
@@petyap7600 не знать IT бороду?)
@@titanovsky А почему я его знать должен? Их куча этих каналов с бородачами.
Посмотрю потом что за марафон у него.
@@titanovskyЯ смотрю ITБороду, но алгоритмов у него не видел. Я ничего не утверждаю, может просто пропустил.
Просто топ!
Выпало в рекомендациях и залип.
Глеб, спасибо за марафон! Буду использовать для наращивания задач и как вводный для литкода
Очень полезный материал, спасибо огромное!
Досмотрел, крутяк! Огромное спасибо за такой контент)
Крутой контент, подписался, а почему больше подобных стримов нет?
Спасибо большое, видео то что надо чтобы войти в понимание задач. Очень выручило
Видос, я тебя таки досмотрел! За 2 недели!!! ))) Спасибо за контент!
Глеб, спасибо большое, неделю назад начал решать Литкод, вот с тобой здесь сижу)
спасибо, нужно бооольше таких видео, в свободное время по минут 10-20-30 смотрю, решаю задачки в уме, потом смотрю твое понятное решение, какие то фишки в коде почерпываю, жду аналогично на медиум уровне :)
еще предложение по стриму, сделай вебку не круглой а квадратной/прямоугольной (браузер прямоугольный, чат прямоугольный, а твоя вебка круглая, по углам от круга много пространства, плюс вебка залезает чуть-чуть на чат и браузер) :)
Спасибо! Я тоже на счет вебки уже в этом направлении думал по тем же критериям)
Мужчина крепчайший.
Такой человек позитивный. Я обычно на задачах с тикающим глазом 😂. От комментариях просто не могла остановиться улыбаться порой… «что можно сделать вот с этой вот дрянью»
Спасибо, понял, почему задача с нулями у меня не проходила!
6:35:56 Valid Mountain Array (array)
1) Склоном считается линия горы из трёх точек, концы которой одна выше, а другая ниже середины.
2) В правильной горе все линии кроме одной будут являться склонами.
3) Просто берём и считаем количество линий, не являющихся склонами.
P.S. А также нужно исключить ущелье.
По моему, это должно работать (за синтаксис не ручаюсь):
count = i = 0
while i < len(arr) - 2:
i += 1
if arr[i-1] > arr[i] < arr[i+1]:
return False
if arr[i-1] = arr[i+1]:
count += 1
return count == 1
Спасибо за хороший список задач, обязательно решу их
шикарно читаешь на английском. Тот момент когда я его слушаю и понимаю не глядя на текст.
Очень классный формат)
Спасибо)
Vozhak vsekh leopardov, Kharoshiy uchitel, luchshiy mentor, Monstrov Monster Monstereovich, Leetcode Hunter ... prosta Khoroshiy chelovek.
Spasiba Gleb za vsyo.
Udachi tebe v zhizni, v rabote + ... = vo vsem !!! 🐅🐅🐅🐅🐅 🫡🫡🫡🫡🫡🙏🙏🙏🙏🙏
Спасибо большое за марафон) Респект за такое)
По ходу прохождения марафона Глеб постепенно превращался в хеллбоя)) если смотреть на красноту лица
за видео огромнейший лайк, именно благодаря этому каналу я стал активно решать литкод и что-то начало получаться
но
на 4:18:43
вот мне прям не нравится такое решение, оно читерское какое то, со всеми этими Сплит...
Вот так чисто алгоритмически:
class Solution:
def reverseWords(self, s: str) -> str:
stopper = 0
driver = 0
new_s = []
for driver in range(len(s)):
if (s[driver] == ' ') :
checkpoint = driver
while stopper < driver:
new_s.append(s[driver-1])
driver -= 1
new_s.append(' ')
stopper = checkpoint + 1
driver = checkpoint
if (driver + 1 == len(s)):
while stopper
оох, пасибки за такое) Как раз скоро начну заниматься Leetcode)
Спасибо за ваш труд! Дошла до конца, теперь приступаю к Middle, жду Hard 😎 Надеюсь, что расту потихоньку.
Начало задач на 13:35
2:23:56 Meeting Rooms (sorting)
1) Отсортировать вложенные списки.
2) Склеить все списки в один.
3) Проверить, изменится ли список, если его отсортировать теперь.
Норм! А закодил? Если будешь кодить, то скинь ссылку на свой submission, интересно посмотреть
@@GlebMikhaylov, если б я умел )
На Javascript, если не ошибаюсь, можно так:
arr.sort()
arr.flat()
return (arr == arr.sort())
В синтаксисе не уверен, скобки наугад ставлю )) Практики ноль, поэтому чтобы хоть что-то написать - мне обычно приходится гуглить каждый оператор, как он там правильно оформляется.
А с Python вообще дела не имел. Смотрю на твой код - вроде всё понятно. Но знаю, сам на нём фиг что напишу сходу, на каждой скобочке застряну. Да, конечно, синтаксис популярного языка (хотя бы один его вариант) можно освоить за пару дней. А потом так же успешно забыть через месяц в отсутствие практики ))
Насчёт Submission - спасибо за веру в меня, я попробую зарегистрироваться :)
Спасибо за марафон!
Даешь качественный контент! Программирование в массы. Штурм leetCode.
Чувак, ты крут!
C кайфом, спасибо. Хотелось бы вживую как-нибудь помарафонить с королём леопардов.
Спасибо за марафон. Жаль, что не 24 часа
Шикарный марафон! Очень жалко что так мало лайков.
Топчик. Полезно
Спасибо большое
Спасибо!
Well done, keep it up
по 101:
var isSymmetric = function(root) {
function m(a,b){
if(!a&&!b)return true
if(!a||!b)return false
if(a.val!=b.val)return false
return m(a.left,b.right)&&m(a.right,b.left)
}
return m(root.left,root.right)
}
на питоне аналогично - в некотором смысле это тоже задача на два указателя
Глеб: "-Если мы будем так решать, то стрим продлится 9 часов"
Я, который видит, что запись - 12 часов: 😏
Глеб, красава!
По минимальному квадрату числа и делению на 2.
Это 2 в степени 2 в худшем случае.
Во всех остальных больше делить можно.
Если от 3, то сразу на 3 делить можно начальную длину.
Давно не было марафонов
1:19:25 Для людей, знающих теорию сравнений и признак делимости на 9, это доказательство проводится в 2 строчки
на 41:13 вообще не могу понять как работает этот алгоритм, может ктото обьяснить
27:21 А почему в этой задаче вы говорите про рекурсию , если просто циклом проходите по листу? Рекурсивный обходы это когда функция вызывает саму себя, разве не так?
спасибо!
Замечательный контент! Спасибо огромное! Можно ли эту запись 24/7 запустить? Это же первый в мире алгоритмический канал будет, с постоянным бомондом 🐆🐆🐆
832. Flipping an Image
Прикольно можно инвертировать было через xor
function flipAndInvertImage(image: number[][]): number[][] {
return image.map(row => row.reverse().map(b => b ^ 1));
};
643. Maximum Average Subarray I
В задаче в первом подходе квадратичное время из-за функции sum, т.к она считает, проходя по всем элементам очереди
Оно не квадратичное на самом деле, т.к. очередь у нас фиксированной длины, но все равно не константное, а зависит от k (не от n). Получается O(n*k).
@@GlebMikhaylov да, согласен
Ну и так же это скорее медиум задача, а не изи
56:53 первое решение *Maximum Average Subarray* там же *Time Complexity* в худшем случае O(nk) или O(n^2) если k = n, т.е. нелинейное, т.к. ты каждый раз считаешь сумму очереди?
Глебас, я слежу за твоим литкодом)) ты в крысу решаешь задачи🤣 . Давай еще один марафон такой же. Пожалуйста ))) Твои объяснения очень сильно помогают изучать алгосы. Думаю я такой не один кто хочет еще марафон. Давай мы тебе скинемся донатами или еще как-то забайтим на такой движ) чтобы не за просто так
Лол!)) Спалился) Я работаю над содержанием курса по алгосам. Спасибо за теплые слова! Марафон пока не планирую, но курс кажется увидит свет в ближайшем будущем)
@@GlebMikhaylov эх жалко. Ну ладно ждем курс)
Подскажи как реализовать загрузку в гугл ексель? Как сделать?
лучший
thanks for explaoning in russian
День за днем я смотрю это видео, когда-то полчаса, когда-то час. Однажды я прилег на диван и уснул, было трудно найти место на котором я вырубился. Я увеличиваю свою насмотренность и знаю, что следующий день не будет пустым так как видео все еще не досмотрено, я купил 30 банок энергетиков по скидке, я встаю с кровати, открываю баночку и начинаю смотреть. Моя язва в моем желудке прогрессирует точно также как и насмотренность на алгоритмы, затем я иду решать самые простые задачки на литкоде и кодварсе, ведь за две недели изучения питона на большее претендовать сложновато. Я знаю, что однажды я досмотрю, но не унываю, ибо есть еще один марафон на задачки посложнее, но что случится когда я досмотрю и его... Об этом думать так же страшно как и методах лечения прогрессирующей язвы.
с утра столько делаю
Огромное спасибо за видео! Не понятен момент на 9:52:20, что значит "if stack"?
if stack вернет True есть список stack не пустой, и False если он пустой
19:40 пример с борщом гениальный, а то мне показалось, что решить многие задачи с лёту выглядит нереалистичным, если не знаешь определенные паттерны, алгоритмы и хитрости, но если изучить, что пишут в обучающем разделе или решения, то появляется понимание.
Мне вот интересно постоянно, эти задачки придумывают под конкретные подходы решения или была сначала задача, а решения люди находят потом? :)
в теории Valid anagram по acsi(в питоне наверн utf) коду можно проxorить, да? за линию по индексам
19:02 Ну почти)
как в первой задаче работает "new=new*10+d"?
Мы же прибавляем массив к числу, как это работает?
Нет, это не массив! New это новое число, которые мы потихоньку делаем. Мы прибавляем число к числу
@@GlebMikhaylov Спасибо за ответ. Я понимаю что d=divmod, а divmod у меня выдает массив из 2 чисел, полное деление и остаток.
@@nkjhk9772 А понял! Обрати внимание, что я сразу этот массив распаковываю в две отдельные переменные: x и d. И таким образом у меня только числа и нет массивов
@@GlebMikhaylov всеее, понял. Премного благодарствую)
1:33:00 дизы можно обратно включить через расширение.
Здравствуйте. Не подскажете какие задачки начать делать на data scientistа, я еще не решал на литкоде?
Привет! Никакие). Эти задачи нужно учиться решать если собираешься на собесы, где их спрашивают, например в Гугл, амазон, яндекс и т.д. Просто так их учиться решать не надо, если только для собственного удовольствия.
У меня просто есть такая проблема, что я вроде понимаю, что написано, но сам так написать не могу, не считая прям совсем банальный код. Поможет ли решение задач на литкоде исправить ситуацию?
3:05:48 Peak Index in a Mountain Array (binary search) - уже поменяли статус на medium :О
Привет, у меня такой вопрос, коммерческого опыта нет, знаю C, Python, люблю Computer Science. Хочу в backend, выбираю между Python, Java, C#, Golang что посоветуете, чтобы легче было устроиться на работу?
Учитывая, что python уже имеется, то для ускорения процесса нахождения работы лучше с ним и продолжать.
Также добавлю, что выбор технологии (и профессии) не стоит делать только основываясь на то, что уже знаешь и на спрос на рынке. Нужно обязательно учитывать и личные предпочтения! Что больше нравится? К чему лежит душа? Это очень важный фактор для выбора того, чем хочешь заниматься.
Чтобы выбрать нужно анализировать комплекс факторов: личные предпочтения, текущие знания, текущую жизненную ситуацию, состояние рынка.
бредор, с коллегой около ста набрали на изи.. на выходе, что дает этот тест, зачет для UpWork?
А выйдет ли у Вас курс по алгоритмам? И если да то когда?
Да, все-таки хочу его сделать! Надеюсь что в этом году)
@@GlebMikhaylov буду ждать)
@@GlebMikhaylov Не подскажешь, пожалуйста, в этой задаче - 3:05:48 Peak Index in a Mountain Array (binary search)
Я написал такое решение
def peakIndexInMountainArray(self, arr: List[int]) -> int:
middle = len(arr) // 2
while middle < len(arr):
if arr[middle] > arr[middle-1] and arr[middle] > arr[middle+1]:
return middle
elif arr[middle] < arr[middle-1]:
middle = middle - 1
else:
middle = middle + 1
Алгоритмическая сложность этого решения O(n) ? Или всё же O(logn)
Я просто ещё только изучаю алгоритмы и мне сложно иногда определить сложность. Тем более бинарный поиск написать.
P.S. Спрашивал у ChatGPT, он написал что O(logn), но я ему не доверяю))
@@heybeachMIN Я не вижу чтобы в while ты делил на 2 и тем самым уменьшал пространство поиска вдвое на каждом шаге. У тебя просто отнимается или прибавляется единичка. И поэтому это линейное время, а не логарифмическое
@@GlebMikhaylov а я короче подумал, что типа пик же всегда по середине, и одноразовое деление на два должно хватить, а там просто уменьшать и прибавлять)
Thanks💯💯💯
392. Is Subsequence
кстати, тут очередь подошла бы больше. Идем в том же порядке и проверяем первый в очереди. И реверсить не нужно стек
Ваще огонь!, Глеб, когда следующий такой марафон планируешь?, хочу тоже в режиме онлайн попробовать =))
Следующий скорее всего будет марафон sql задач на LeetCode. Ну и к мидл марафону по алгосам тоже потихоньку готовлюсь)
@@GlebMikhaylov тоже интересная тема!, я вот пока не могу приноровиться к sql задачам на LeetCode, очень не удобный там вывод результата!, пока только easy problem получается.
Будет очень интересно с тобой порешать, посмотреть твои лайвхаки!=), маякни как что)))
@@ИванГончаров-ц8й Да, вывод результатов для sql на Leetcode это ад))
Прикол, Peak Index in a Mountain Array перевели в medium. Это как происходит?
thanks
Если честно ненавижу такие задачки и совершенно не понимаю зачем люди на них тратят время, но интересно посмотреть на видео)
Из спортивного интереса. Да, для реальной работы они не нужны и там в большей степени нужны другие навыки
В ведущие IT компании России и мира не нанимают без навыка решения таких задач: они используются для отбора кандидатов. Такова реальность, а насколько они полезны в самой работе это в данном случае не важно, т.к. без них не будет работы (в крупной и известной IT компании).
Ну и второй момент, если втянуться в эти задачи, то это довольно прикольно и оказывает положительный эффект на мозг, как фитнес. Я вот их раньше тоже ненавидел, а сейчас полюбил и получаю от них удовольствие).
@@GlebMikhaylov Про крупные компании я не согласен, с остальным согласен)
Что можно считать крупной компанией?)
Например я разрабатывал аналитический софт для пепсико, аддидаса и для американских страховых компаний.
Сейчас я строю систему аналитики для одного из поставщиков самоката и на основной работе разрабатываю микросервисы для криптокомпании.
Являются ли они крупными? Думаю, что да)
За 4 года коммерческой разработки у меня спрашивали за алгоритмы только на позицию джуна)
В гугл, амазон и фейсбук я не пойду из-за внутренних своих убеждений, и знаю что там уже дрочево)
@@eugenefedoryachenko8793 Я имел в виду как раз всякие FAANG и прочие)
Глеб, расскажи, что такое dp type в этих задачах?
dynamic programming
В FAANG любят задачки аналогичные литкоду
Если прорешать все эти задачи, то секцию на алгоритмы в Яндексе можно будет пройти?
Нет, это easy задачи, скорее это подготовительный этап. Секция алгоритмов в Яндекс это как минимум medium. По medium тоже будет марафон, ближе к новому году думаю). А может быть раньше).
@@GlebMikhaylov а на счет секции алгоритмов на собеседовании на стажёра вы ничего не знаете? Какой там уровень? Как easy на leetcode?
@@just__did__it Я думаю, что скорее всего там тоже минимум medium, т.к. алго секция она на всех уровнях (от стажера до синьора) плюс минус одинаковая. И со стажера на самом деле кроме алгоритмов спросить нечего, поэтому там и норм уровень требуют.
@@GlebMikhaylov я на вашем канале впервые. Как я понял, у вас также есть видео с задачами уровня medium и hard?
@@just__did__it Пока еще нет, вот только планируется следующий medium марафон пока). У меня много тестовых по дс, аналитике и sql, среди них есть сложные, но это совсем другое, это не алгоритмы
Поставлю много плюсиков: ++++++++++++++++++++++++++++++++++++++++++++++
ну что, как там, ты понял когда в бин поиске < а когда
Ну лучше всегда ставить
@@GlebMikhaylov спасибо за ответ и за отличный контент, надеюсь скоро перейду на марафон по медиум задачкам)
Глеб а на кодворс какой уровень у тебя ?
До кодворса не доходит дело, я на литкоде тренюсь и еще немного на algoexpert: взял его т.к. там задачи отборные
6:06:24
можно еще ксором 1 инвертировать, чисто по хакерских будет, без нубовских ифов
ps:у Глеба же и научился этому
31:20 Жирный «+» за курс по алгоритмам в планах.
Это питон?
Как сделать тёмный режим на leedcode?
Это надстройка для Хрома darkreader
Нормально если даже easy тяжело решать. Когда стоит искать готовый ответ, если сам уж не можешь?
спасибо
@@caffeinejavacode1475 Привет! Смотрел вручную коменты и увидел твой). То что тяжело решать easy это абсолютно нормально! Когда учишься, то нужно начинать с того, чтобы смотреть на готовый ответ, и уже потом кодить. Твоя ощуение выглядит следующим образом: 80% разбор решения и их имплементация, 15% перерешивание известных тебе задач, 5% попытки решить новые самому
Говоришь нужно учиться решать. А вот если смотреть видео с решением задачи и его самим писать тут же, то это нормальное обучение или прям стоит самим сидеть, даже тупить но решить своим умом?
нет, сидеть и мучиться не нужно. Нужно именно выстроить тренировочный процесс. И лучше всего так: открываешь задачу, читаешь, если сразу видишь решение, то пробуешь закодить (если с не получилось, то ничего страшного). Если не видишь, то смотришь решение, понимаешь, и потом сам кодишь.
Время от времени можно устраивать себе челенджи, где целенаправленно сидишь и пытаешься сам решить задачу. Но в обычный день ты просто учишься, разбираешь задачи и набираешься опыта, а не истязаешь себя)).