- Видео 53
- Просмотров 15 839
Леонид Мурзинов
Добавлен 31 май 2023
Собираем триплет. Leetcode 334. Increasing Triplet Subsequence
🚀 Собираем триплеты! Решаем задачу Leetcode 334 - "Increasing Triplet Subsequence" и выигрываем в Hearthstone! 🌟🃏
🔍 В этом видео:
📊 Глубокий анализ задачи Leetcode 334: Узнай, как находить возрастающие триплеты в массиве.
🧠 Эффективное решение на Python: Пошаговое объяснение кода для оптимизации времени выполнения.
🎮 Веселые аналогии с Hearthstone: Погружаем алгоритмы в игровой контекст для легкого понимания.
🎯 Кому будет полезно это видео:
👨💻 Программистам: Желающим прокачать свои навыки решения задач на Leetcode.
📝 Кандидатам: Готовящимся к техническим собеседованиям в IT-компаниях.
🌱 Энтузиастам кодинга: В поисках новых вызовов и способов улучшения своих навыков.
📘 Из этого видео вы узна...
🔍 В этом видео:
📊 Глубокий анализ задачи Leetcode 334: Узнай, как находить возрастающие триплеты в массиве.
🧠 Эффективное решение на Python: Пошаговое объяснение кода для оптимизации времени выполнения.
🎮 Веселые аналогии с Hearthstone: Погружаем алгоритмы в игровой контекст для легкого понимания.
🎯 Кому будет полезно это видео:
👨💻 Программистам: Желающим прокачать свои навыки решения задач на Leetcode.
📝 Кандидатам: Готовящимся к техническим собеседованиям в IT-компаниях.
🌱 Энтузиастам кодинга: В поисках новых вызовов и способов улучшения своих навыков.
📘 Из этого видео вы узна...
Просмотров: 113
Видео
Согласные и не согласные. Leetcode 345. Reverse Vowels of a String
Просмотров 3886 месяцев назад
🌟 Исследуйте тайны программирования строк с "Согласные и не согласные: LeetCode 345. Reverse Vowels of a String"! Заново откройте для себя, как интересно и увлекательно может быть решение задач на обработку строк. Это видео не только учит вас техническим аспектам, но и делает процесс обучения невероятно забавным и захватывающим. Присоединяйтесь к нашему путешествию по миру кода, чтобы стать нас...
Детский выпуск. 1431. Kids With the Greatest Number of Candies
Просмотров 707 месяцев назад
🍭 Погрузитесь в захватывающий мир программирования с "Детский выпуск: LeetCode 1431. Kids With the Greatest Number of Candies"! Это видео не только решение задачи, но и волшебное приключение в мир кодирования, где каждый шаг обучения наполнен радостью и весельем. Идеально для семейного времяпрепровождения и первых шагов в программировании для детей! 🎉💻 🔍 В этом видео вы откроете: Забавные и инт...
Кое-что получше словаря. Leetcode 442. Find All Duplicates in an Array
Просмотров 5067 месяцев назад
🚀 Исследуйте уникальные алгоритмы с "Кое-что получше словаря: LeetCode 442. Find All Duplicates in an Array"! Это не просто видео, это ключ к открытию новых подходов в поиске дубликатов в массивах. Запускаем алгоритмический реактор для полета в мир высокоэффективного программирования! 🌌💻 🔍 Вы узнаете: Инновационные методы обнаружения дубликатов, выходя за рамки обычного использования словарей. ...
Садоводческий выпуск. Leetcode 605. Can Place Flowers
Просмотров 1147 месяцев назад
🌺 Отправляйтесь в захватывающее путешествие с "Садоводческий выпуск: LeetCode 605. Can Place Flowers"! Это видео представляет уникальное сочетание программирования и садоводства, обучая вас решению одной из самых креативных задач на LeetCode. Поднимите свои навыки кодирования на новый уровень, наслаждаясь красотой природы в коде! 🌼💻 🔍 Из этого видео вы извлечете: Необычные способы определения в...
Разогревочная задачка. 1768. Merge Strings Alternately
Просмотров 1327 месяцев назад
🌟 Откройте мир программирования с "Разогревочная задачка. LeetCode 1768. Merge Strings Alternately"! Это видео - ваш путеводитель по интересной и занимательной задаче, которая подогреет ваше алгоритмическое мышление и добавит искры в ваше программирование. Поднимите свои навыки кодирования на новый уровень с нашим увлекательным руководством! 💡💻 🔍 Вас ждет в этом видео: Уникальные методы и техни...
Моя любимая задача на Leetcode. 1207. Unique Number of Occurrences
Просмотров 2,7 тыс.7 месяцев назад
🚀 Откройте секреты эффективного программирования! Загляните в глубины алгоритмических головоломок и присоединитесь к захватывающему анализу одной из самых увлекательных задач на LeetCode. Вместе мы раскроем мастерство создания мощного кода! 🌟💻 🔍 Откройте для себя: Секреты работы с хэш-таблицами и множествами, преобразуя сложные алгоритмические проблемы в простые и элегантные решения. Мастерство...
Погружаемся в глубины математики. Leetcode 2. Add Two Numbers
Просмотров 4578 месяцев назад
🚀 Присоединяйтесь к захватывающему путешествию в мир программирования с "Погружаемся в глубины математики. Leetcode 2. Add Two Numbers"! Это не просто видео - это глубокий анализ и мастер-класс по одной из самых популярных задач на LeetCode. Откройте для себя секреты профессионального кодирования вместе с нами! 🌟💻 🔍 Научитесь искусству: Изящно управлять сложностями связанных списков, преобразуя...
Сортировка быстрее, чем NlogN или спортивный выпуск. 2225. Find Players With Zero or One Losses
Просмотров 1199 месяцев назад
🚀 Встречайте: "Сортировка быстрее, чем NlogN или спортивный выпуск. Leetcode 2225. Find Players With Zero or One Losses" - уникальное видео, где мы решаем одну из самых захватывающих задач на LeetCode! Присоединяйтесь к нам в этом невероятном алгоритмическом приключении! 🌟👨💻 🔍 Чему вы научитесь: - Осваивать эффективные методы сортировки, превосходящие классический NlogN. - Использовать Python ...
Самый польский выпуск. Leetcode 150. Evaluate Reverse Polish Notation
Просмотров 1269 месяцев назад
🌐 Открываем занавес над "Evaluate Reverse Polish Notation" (LeetCode 150) в нашем самом польском выпуске! Это видео погрузит вас в мир обратной польской нотации, где каждый символ и число раскрываются в их истинном алгоритмическом величии. Присоединяйтесь к нам в этом захватывающем аналитическом путешествии по миру программирования! 🇵🇱💻 🔎 Вы научитесь: Осваивать методы решения "Evaluate Reverse...
Я желанье загадал, что однажды вам устрою интервал. Leetcode 228. Summary Ranges
Просмотров 25610 месяцев назад
🌠 Исследуйте мир алгоритмических загадок с "Summary Ranges" (LeetCode 228)! В этом видео я осуществляю ваше желание познать глубину интервалов, представляя уникальные и творческие подходы к решению задачи на Python. Погрузитесь в увлекательное путешествие по миру кода, где каждый интервал открывает новую возможность для обучения! 🌟💻 🔍 Вы изучите: Инновационные методы для эффективного решения за...
В сердце бахнули стрелы. Leetcode 452. Minimum Number of Arrows to Burst Balloons
Просмотров 88710 месяцев назад
🌟 Откройте для себя захватывающий мир решения задач с "Minimum Number of Arrows to Burst Balloons" (LeetCode 452)! В этом видео я погружаюсь в сердце проблемы, используя стрелы логики и интеллекта, чтобы взорвать воздушные шары сложных алгоритмов. Присоединяйтесь к нам в этом увлекательном математическом приключении! 🏹🎈 🔎 Вы научитесь: Разбираться в сложной задаче "Minimum Number of Arrows to B...
Охотимся за дубликатами. Leetcode 219. Contains Duplicate II
Просмотров 15510 месяцев назад
🌟 Исследуйте мир алгоритмов с "Охотой за дубликатами" в Leetcode 219. Contains Duplicate II! В этом захватывающем видео, я разоблачу секреты обнаружения повторений в массивах, используя Python. Захватите момент и окунитесь в увлекательное приключение кодирования, которое откроет перед вами новые возможности алгоритмического мастерства! 🚀 🔍 Расширяйте границы своих знаний: Перенеситесь на новый ...
Пытаемся стать друзьями. Leetcode 57. Insert Interval
Просмотров 11810 месяцев назад
🌠 Открывайте новые горизонты с "Insert Interval" (LeetCode 57)! В этом эксклюзивном видео я беру на себя вызов решения одной из самых интригующих задач на Python, демонстрируя, как превратить алгоритмические препятствия в возможности. Погрузитесь в мир кода и откройте для себя новые уровни мастерства! 🌌 🔎 Вы расширите свои знания: Освоите передовые стратегии для задачи "Insert Interval", которы...
Сортируем без сортировок. Leetcode 128. Longest Consecutive Sequence
Просмотров 36610 месяцев назад
🌟 Открываем мир элегантных алгоритмов с задачей "Longest Consecutive Sequence" (LeetCode 128)! В этом видео я покажу, как можно решать сложные задачи без стандартных методов сортировки. 🚀 🔍 Вы научитесь: Осваивать уникальные алгоритмические подходы для "Longest Consecutive Sequence". Применять инновационные техники решения на Python, минуя обычные методы. Развивать логическое мышление и углубля...
Опять близнецы. Leetcode 290. Word Pattern
Просмотров 11510 месяцев назад
Опять близнецы. Leetcode 290. Word Pattern
Опять думаем о Римской империи. Leetcode 205. Isomorphic Strings
Просмотров 28211 месяцев назад
Опять думаем о Римской империи. Leetcode 205. Isomorphic Strings
Играем в детективов. Leetcode 383. Ransom Note
Просмотров 61311 месяцев назад
Играем в детективов. Leetcode 383. Ransom Note
Счастливое или не очень число. Leetcode 202. Happy Number
Просмотров 48011 месяцев назад
Счастливое или не очень число. Leetcode 202. Happy Number
Слова как острова. Leetcode 58. Length of Last Word
Просмотров 27611 месяцев назад
Слова как острова. Leetcode 58. Length of Last Word
Задача брат-близнец. Leetcode 3. Longest Substring Without Repeating Characters
Просмотров 7911 месяцев назад
Задача брат-близнец. Leetcode 3. Longest Substring Without Repeating Characters
Как из N² получить N без регистрации и смс. Leetcode 209. Minimum Size Subarray Sum
Просмотров 79211 месяцев назад
Как из N² получить N без регистрации и смс. Leetcode 209. Minimum Size Subarray Sum
Сложность в простоте. Leetcode 28. Find the Index of the First Occurrence in a String
Просмотров 36411 месяцев назад
Сложность в простоте. Leetcode 28. Find the Index of the First Occurrence in a String
Leetcode 14. Longest Common Prefix. Ищем что-то общее
Просмотров 49811 месяцев назад
Leetcode 14. Longest Common Prefix. Ищем что-то общее
Подпоследовательность и надоедливые указатели. Leetcode 392. Is Subsequence
Просмотров 108Год назад
Подпоследовательность и надоедливые указатели. Leetcode 392. Is Subsequence
Магия Питона или задача Leetcode 125. Valid Palindrome
Просмотров 83Год назад
Магия Питона или задача Leetcode 125. Valid Palindrome
Отправляемся в зазеркалье Leetcode или решаем задачу 101. Symmetric Tree
Просмотров 112Год назад
Отправляемся в зазеркалье Leetcode или решаем задачу 101. Symmetric Tree
Единственная задача, нерешаемая словарем или любимые 2 указателя. Leetcode 283. Move Zeroes
Просмотров 130Год назад
Единственная задача, нерешаемая словарем или любимые 2 указателя. Leetcode 283. Move Zeroes
Ключ к успешной жизни или искусство быстрой сортировки Хоара (Quicksort)
Просмотров 122Год назад
Ключ к успешной жизни или искусство быстрой сортировки Хоара (Quicksort)
Самый важный навык программиста или задача трансформер с Leetcode. 234. Palindrome Linked List
Просмотров 290Год назад
Самый важный навык программиста или задача трансформер с Leetcode. 234. Palindrome Linked List
Здравствуйте, Леонид. Пожалуйста, сделайте интро тише.
)
спасибо большое за объяснение! смогла решить даже не досмотрев до конца. Реально всё понятно!
00:32 шикарное предоставление инфы 🤣👍
from typing import List class Solution: def summaryRanges(self, nums: List[int]) -> List[str]: if not nums: return [] result = [] left = 0 for right in range(len(nums) - 1): if nums[right + 1] - nums[right] != 1: if right == left: result.append(f"{nums[left]}") else: result.append(f"{nums[left]}->{nums[right]}") left = right + 1 if left == len(nums) - 1: result.append(str(nums[left])) else: result.append("{}->{}".format(nums[left], nums[-1])) return result
Можно сделать в одном лупе fun summaryRanges(nums: IntArray): List<String> { if (nums.isEmpty()) return emptyList() val result = mutableListOf<String>() var left = 0 for (right in 0 until nums.lastIndex) { if (nums[right + 1] - nums[right] != 1) { result.add(if (right == left) "${nums[left]}" else "${nums[left]}->${nums[right]}") left = right + 1 } } result.add(if (left == nums.lastIndex) "${nums[left]}" else "${nums[left]}->${nums.last()}") return result }
function isSubsequence(a, b) { let left = 0; let right = 0; for (let i = 0; i < b.length; i++) { if (a[left] === b[right]) { left++; right++; } else { right++; } } return left === a.length; }
function isSubsequence(a, b) { const stack = a.split(""); for (let i = 0; i < b.length; i++) { if (stack[0] === b[i]) { stack.shift(); } } return stack.length === 0; }
function containsNearbyDuplicate(arr, k) { const store = {}; for (let i = 0; i < arr.length; i++) { if (i - store[arr[i]] <= k) { return true; } store[arr[i]] = i; } return false; }
var summaryRanges = function (arr) { const res = []; let left = 0; let right = 0; for (let i = 0; i < arr.length; i++) { if (arr[right] === arr[right + 1] - 1) { right++; } else { res.push(concat(arr, left, right)); right = right + 1; left = right; } } return res; }; function concat(arr, l, r) { if (r - l === 0) { return `${arr[l]}`; } return `${arr[l]}->${arr[r]}`; }
function canPlaceFlowers(arr, n) { for (let i = 0; i < arr.length; i++) { if (arr[i] !== 1 && arr[i + 1] !== 1 && arr[i - 1] !== 1) { n--; arr[i] = 1; } } return n <= 0; }
function mergeAlternately(a, b) { let res = ""; for (let i = 0; i < Math.max(a.length, b.length); i++) { if (a[i]) { res = res + a[i]; } if (b[i]) { res = res + b[i]; } } return res; }
мое решение на js если интересно
var findWinners = function (arr) { const losers = {}; const res = [[], []]; for (let i = 0; i < arr.length; i++) { if (!(arr[i][0] in losers)) { losers[arr[i][0]] = 0; } losers[arr[i][1]] = losers[arr[i][1]] ? losers[arr[i][1]] + 1 : 1; } for (let key in losers) { if (losers[key] === 1) { res[1].push(key); } if (losers[key] === 0) { res[0].push(key); } } return res; };
function findWinners(arr) { const tempArr = Array(10 ** 5 + 1).fill(-1, 0, 10 ** 5 + 1); const res = [[], []]; for (let i = 0; i < arr.length; i++) { if (tempArr[arr[i][0]] === -1) { tempArr[arr[i][0]] = 0; } if (tempArr[arr[i][1]] === -1) { tempArr[arr[i][1]] = 1; } else { tempArr[arr[i][1]] = tempArr[arr[i][1]] + 1; } } for (let i = 0; i < tempArr.length; i++) { if (tempArr[i] === 0) { res[0].push(i); } if (tempArr[i] === 1) { res[1].push(i); } } return res; }
спасибо, вот еще вариант решения. через set
function missingNumber(arr) { let set = new Set(arr); for (let i = 0; i <= arr.length; i++) { if (!set.has(i)) { return i; } } }
вот реализация второй идеи без указатель, он по райтайму не проходит
function minSubArrayLen(arr, target) { let sum = 0; let qwt = Infinity; for (let i = 0; i < arr.length; i++) { stop: for (let j = i; j < arr.length; j++) { sum = sum + arr[j]; if (sum >= target) { console.log(i, qwt); qwt = qwt < j - i + 1 ? qwt : j - i + 1; break stop; } } sum = 0; } return qwt === Infinity ? 0 : qwt; }
весь мозг сломал что не так
function findSubstring(str) { let max = 0; let left = 0; let right = 0; const set = new Set(); for (let i = 0; i < str.length; i++) { if (set.has(str[right])) { set.delete(str[left]); left = left + 1; } else { set.add(str[right]); right = right + 1; max = Math.max(max, right - left + 1); } } return max; }
я цикл while забыл по сету, без него нельзя решить?
спасибо, не додумался до идеи, что можно в кеш складывать все числа, а при повторе их возвращать false
Задачка часто попадается в Яндексе
Линейная гони сердечко
....ღღღღღღ......................ღღღღღღ ..ღღღღღღღღღ............ღღღღღღღღღ ღღღღღღღღღღღღ....ღღღღღღღღღღ ღღღღღღღღღღღღღ.ღღღღღღღღღღ ..ღღღღღღღღღღღღღღღღღღღღღღ ....ღღღღღღღღღღღღღღღღღღღღ ........ღღღღღღღღღღღღღღღღღ ..............ღღღღღღღღღღღღღ ....................ღღღღღღღღღ ........................ღღღღღღ ...........................ღღღღ ............................ღღღ .............................ღღ ..............................ღ
Брат не останавливайся
Скоро будет новый сезон, пока распространяйте, чтобы было побольше подписчиков)
пора открыть новую рубрику : историческое программирование
прошу вас. ради всего святого. что бы ни случилось. продолжайте😈😈😈😈😈
Отличное объяснение, благодарю за видео. Успехов!
🤨🤨🤨
отличное объяснение
я одной вещи не понял, переменная word создана внутри второго цикла, а мы её призываем вне этого цикла
Бро, ты только не сдавайся, пили видосы дальше. Отличная подача
Спасибо!
почему min ( который работает за O(n) )не влияет на сложность? Понятно что он отрабатывает не каждый раз но все же почему он не учитывается при общей сложности ?
Функция min в коде вызывается для двух аргументов и работает за константное время O(1), а не O(n). Она не влияет на общую сложность алгоритма, потому что каждый элемент массива рассматривается в циклах не более двух раз (один раз добавляется в сумму, один раз вычитается), и таким образом общая сложность алгоритма остаётся линейной, O(n).
@@leonid_murzinov точно спасибо. я перепутал с min( my_list)
А какая сложность алгоритма решения? Если O(n), не совсем понимаю почему, у нас ведь проходит по сету занимает O(n) и плюсом прибавка единичек если есть последовательность
Сложность O(n) по времени Здесь главная идея, что нет вложенного цикла благодаря проверки на то является ли элемент началом последовательности или нет, грубо работа с каждым элементом 1 раз. То есть у нас есть цикл for number in set_numbers: В нем если элемент не является началом последовательности, то мы его пропускаем через проверку - if (number - 1) not in set_numbers: Если является началом последовательности, то берем этот элемент, а также все те элементы, которые в этой последовательности. То есть если у нас [1,2,3,4,5] То мы берем 1, дальше мы уходим в while (number + length) in set_numbers: Там мы проходимся по всей последовательности, получаем наш максимум, а уже 2,3,4,5 мы пропускаем при проверке на то, что это не начало последовательности.
O(n)
000000000000000000000000000000000000000000000000000000 000000000000001111114000000000000011111140000000000000 000000000011111111111111000000111111111111110000000000 000000005111111111111111110051111111111111111100000000 000000011111111111111111111111111111111111111110000000 000000111111111110000001111111140000051111111111000000 000005111111114000000000051110000000000011111111100000 000001111111140000000000000400000000000001111111100000 000001111111000000000000000000000000000000111111110000 000001111111000000000000000000000000000000111111110000 000001111111000000000000000000000000000000111111150000 000001111111000000000000000000000000000000111111100000 000005111111100000000000000000000000000001111111100000 000000111111110000000000000000000000000011111111000000 000000011111111100000000000000000000005111111110000000 000000001111111111500000000000000004111111111100000000 000000000011111111111100000000005111111111114000000000 000000000004111111111111000000511111111111500000000000 000000000000004111111111140001111111111500000000000000 000000000000000001111111110011111111100000000000000000 000000000000000000051111111111111110000000000000000000 000000000000000000000111111111111000000000000000000000 000000000000000000000041111111150000000000000000000000 000000000000000000000000111111500000000000000000000000 000000000000000000000000011111000000000000000000000000 000000000000000000000000051110000000000000000000000000 000000000000000000000000001100000000000000000000000000 000000000000000000000000000400000000000000000000000000 000000000000000000000000000000000000000000000000000000
Супер, спасибо
так у тебя же O(n) доп памяти друг:)
Здесь константа по памяти, где O(n)?
В контексте пространственной сложности, "O(1)" дополнительное пространство означает, что объем памяти, необходимый для работы алгоритма, не зависит от размера входных данных, то есть от размера массива nums. В данном случае алгоритм использует исходный массив nums для отслеживания посещенных чисел, меняя знаки элементов массива. Он не требует дополнительного массива или структуры данных, которые были бы пропорциональны размеру входного массива. Вместо этого, алгоритм использует фиксированное количество дополнительной памяти для хранения переменных цикла и временных значений, таких как res и n. Эти переменные не увеличиваются в размере в зависимости от размера входных данных.
@@leonid_murzinovв каких-нибудь плюсах массив будет приходить по константной ссылке, так что все равно придётся копировать его, что займет O(n), поэтому проще уже по старинке мапу создавать и все код поймут, кто смотреть будет
@@leonid_murzinovну и в самом питоне не комильфо создавать сайд эффекты на ровном месте, я вот хочу просто получить дубликаты из массива, а мне его меняют без спроса
Спасибо за разбор этой задачи с LeetCode! Очень понятно объяснили шаги решения. Будет замечательно, если вы сможете предоставить разбор еще одной задачи в следующем видео. Благодарю заранее!
Не советую учить программирование (исключение составляет лишь изучение в качестве хобби), потому что это умирающая профессия, которую скоро полностью автоматизирует искусственный интеллект. Так считают многие авторитеты в индустрии технологий, например, Дженсен Хуанг - гендир Нвидии, а также Джон Кармак - легендарный программист, автор дума и отец игровых движков, Сэм Альтман - гендир OpenAI.
А что советуете учить?
@@leonid_murzinov сам даже не знаю. Думаю над этим. Если так подумать, то все "бело-воротничковые" профессии под угрозой..
@@mndtr0 а мы вот с мужиками не согласны, завод это конечно стабильно, но мы выбираем решать алгоритмы
у вас кто-то спрашивал совета?
@@ДанилДмитриев-я5м искренне хочу помочь людям в профориентации
боже какая же это элементарная задача...
Какую бы вы хотели, чтобы решили посложнее?
ну к примеру задача среднего уровня: даны два массива чисел, нужно сложить два этих числа и вернуть массив их суммы(полученное число)
@@logicalelton8711 если вы знаете, можете дать название задачи на leetcode, мы можем разобрать в следующих выпусках
вы работаете уже?
Пожалуйста ознакомьтесь с структурой defaultdict, она облегчить ваш первый цикл
Так же, как и с вторым циклом, существуют более простые методы реализации с точки зрения Python. Однако наша задача - продемонстрировать алгоритм решения и написать код, который будет максимально читабельным и наглядно описывающим алгоритм, даже для тех, кто не знаком с языком
А то есть создание тьюпла работает за константку)??
Дайте название трека пж)
Миражи - hehehe, ask eternity music.yandex.ru/album/29511815/track/119269334? Swing Lynn Harmless ruclips.net/video/D7DVSZ_poHk/видео.html
Напоминаю, что все друзья с Бусти имеют доступ к плейлистам)
вот смотрите: в 13 строчке мы должны добавить к узлу новое значение, и делается это вот так: tail.next=list2, по логике вещей, должен присвоиться весь список, а добавляется онли значение (насколько я понимаю, если присваивать значение, то это должно выглядеть так: tail.next=list2.val, но так не работает), но это же правило не работает в строчке 21, когда мы в конец присваиваем остаток списка таким же способом. Пожалуйста, объясните недалекому(мне) этот момент
Строка 21: Да, в строке 21 мы добавляем весь оставшийся список (list1 или list2) к нашему сформированному списку. Поскольку один из списков уже полностью пройден, мы просто прикрепляем остаток другого списка к текущему концу объединенного списка (tail). Поскольку список уже упорядочен, нет необходимости проходить по каждому его узлу - мы просто устанавливаем ссылку. Строка 13: Здесь мы выбираем меньший узел из двух списков (либо из list1, либо из list2) и добавляем его к объединенному списку. Важный момент заключается в том, что после добавления узла, мы продвигаемся дальше по списку, из которого был взят этот узел (перемещаем list1 или list2 на следующий узел). Таким образом, мы не добавляем весь остаток списка сразу, а лишь один узел из него. После этого, мы перемещаем tail на tail.next, чтобы в следующей итерации добавлять узлы уже к следующему элементу объединенного списка. Таким образом в результате, мы получается добавим как бы одну ноду. Таким образом, в обоих случаях происходит добавление узлов, но в строчке 13 мы добавляем один узел и продвигаемся дальше по списку, из которого этот узел был взят, тогда как в строчке 21 мы добавляем оставшуюся часть списка целиком.
tail.next = list2.val нельзя использовать потому что tail.next должен ссылаться на узел (объект ListNode), а не на отдельное значение (например, число). В связанных списках каждый узел (ListNode) содержит два элемента: val (значение узла) и next (ссылку на следующий узел в списке). Когда вы присваиваете tail.next = list2, вы устанавливаете ссылку на следующий узел. Если же вы попытаетесь сделать tail.next = list2.val, то это попытка установить ссылку на простое число или значение, что нарушает структуру связанного списка.
Лайк и подписка👍
хз как там в питоне, но можно ведь что-то такое length(set(d.values())) === length(d.values()) сделать вместо последнего цикла. length фуркция получения размера массива/множеста
Да, конечно можно, я поэтому и говорю, что мы просто для наглядности используем там словарь, но в целом есть разные варианты как проверить
хаха ору!
Классное видео. Спасибо🙂
Curva jeżyk, to jest najlepsze nagranie
Формат топ. Спасибо
Нахера эта музыка?!
Чтобы веселее было задачи решать
Видео как обычно супер, все понятно и полезно! Отсылки это нечто, вот бы в школе так учили
Обложка топ🤩
Решение неверное)
В чем именно?