Ура! 10- ая юбилейная воскресная задачка, закрепляем two pointers на средней задаче, она очень похожа на предыдущую https://t.me/python_simple/112:
10. Remove Duplicates from Sorted Array II (средняя)
leetcode.com/problems/remove-duplicates-from-sorted-array-ii
На вход подается целочисленный массив nums, отсортированный в неубывающем порядке, удалите дубликаты, так, чтобы каждое число повторялось не более 2-х раз. Порядок элементов должен быть сохранен.
Возвратите k после размещения окончательного результата в первых k слотах nums.
Нельзя использовать доп массив для размещения в нем результата.
Пример 1:
Input: nums = [1,1,1,2,2,3]
Output: 5
При этом nums = [1,1,2,2,3,_], но последние элементы не должны быть именно «_», они могут быть чем угодно, их можно не трогать
Пример 2:
Input: nums = [0,0,1,1,1,1,2,3,3]
Output: 7
При этом nums = [0,0,1,1,2,3,3,_,_]
def removeDuplicates(nums):
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
Список всех задач
#ps_leetcode
10. Remove Duplicates from Sorted Array II (средняя)
leetcode.com/problems/remove-duplicates-from-sorted-array-ii
На вход подается целочисленный массив nums, отсортированный в неубывающем порядке, удалите дубликаты, так, чтобы каждое число повторялось не более 2-х раз. Порядок элементов должен быть сохранен.
Возвратите k после размещения окончательного результата в первых k слотах nums.
Нельзя использовать доп массив для размещения в нем результата.
Пример 1:
Input: nums = [1,1,1,2,2,3]
Output: 5
При этом nums = [1,1,2,2,3,_], но последние элементы не должны быть именно «_», они могут быть чем угодно, их можно не трогать
Пример 2:
Input: nums = [0,0,1,1,1,1,2,3,3]
Output: 7
При этом nums = [0,0,1,1,2,3,3,_,_]
def removeDuplicates(nums):
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
Список всех задач
#ps_leetcode
❤3👍1
Воскресная задачка. Сегодня не будем ещё начинать новый паттерн литкод задач. Закрепим то, что уже знаем ещё одной задачкой из топ 300 задач)
11. Replace Elements with Greatest Element on Right Side (легкая)
leetcode.com/problems/replace-elements-with-greatest-element-on-right-side
Получаем массив arr, замените каждый элемент в этом массиве самым большим элементом среди элементов справа от него, а последний элемент замените на -1.
После этого верните массив.
Пример 1:
Input: arr = [17,18,5,4,6,1]
Output: [18,6,6,6,1,-1]
Пример 2:
Input: arr = [400]
Output: [-1]
class Solution:
def replaceElements(self, arr: List[int]) -> List[int]:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
11. Replace Elements with Greatest Element on Right Side (легкая)
leetcode.com/problems/replace-elements-with-greatest-element-on-right-side
Получаем массив arr, замените каждый элемент в этом массиве самым большим элементом среди элементов справа от него, а последний элемент замените на -1.
После этого верните массив.
Пример 1:
Input: arr = [17,18,5,4,6,1]
Output: [18,6,6,6,1,-1]
Пример 2:
Input: arr = [400]
Output: [-1]
class Solution:
def replaceElements(self, arr: List[int]) -> List[int]:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
🔥4👍1
Воскресная задачка.
12. Best Time to Buy and Sell Stock (легкая)
leetcode.com/problems/best-time-to-buy-and-sell-stock
На вход приходит prices, где prices[i] — цена данной акции на i-й день.
Необходимо максимизировать свою прибыль, выбрав один день для покупки одной акции и другой день в будущем для продажи этой акции.
Верните максимальную прибыль, которую вы можете получить от этой сделки. Если вы не можете получить никакой прибыли, верните 0.
Пример 1:
Input: prices = [7,1,5,3,6,4]
Output: 5
Пример 2:
Input: prices = [7,6,4,3,1]
Output: 0
class Solution:
def maxProfit(self, prices: List[int]) -> int:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
12. Best Time to Buy and Sell Stock (легкая)
leetcode.com/problems/best-time-to-buy-and-sell-stock
На вход приходит prices, где prices[i] — цена данной акции на i-й день.
Необходимо максимизировать свою прибыль, выбрав один день для покупки одной акции и другой день в будущем для продажи этой акции.
Верните максимальную прибыль, которую вы можете получить от этой сделки. Если вы не можете получить никакой прибыли, верните 0.
Пример 1:
Input: prices = [7,1,5,3,6,4]
Output: 5
Пример 2:
Input: prices = [7,6,4,3,1]
Output: 0
class Solution:
def maxProfit(self, prices: List[int]) -> int:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
👍4🔥1
На этой неделе хотел разобрать сложную задачу, но думаю, что как подготовка, надо ещё решить среднюю, она как и предыдущая на two pointers и на последовательность значений на графике, но сложнее, хотя если вы решали предыдущие задачи, то она может показаться лёгкой)
13. Container With Most Water (средняя)
Условие - https://telegra.ph/13-Container-With-Most-Water-srednyaya-08-06
Литкод - leetcode.com/problems/container-with-most-water
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
13. Container With Most Water (средняя)
Условие - https://telegra.ph/13-Container-With-Most-Water-srednyaya-08-06
Литкод - leetcode.com/problems/container-with-most-water
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
👍4❤1
Воскресная задача:
Многие компании в качестве средней задачи, но как правило она идет уже как тяжелая, любят давать задачу на интервалы. Тут могут быть вариации, например даны интервалы, найти пересечения или промежутки.
Также эта задача была в контесте для поступления в школу от озона route256. Причем там эта задача была не самой сложной, где-то выше середины в списке, но если ты решал её и все задачи, которые полегче, то этого было достаточно, чтобы набрать проходной балл. Я встречал эту задачу в ВК и Озоне. Но знаю, что и другие компании любят давать подобные задачи.
14. Merge Intervals (средняя)
leetcode.com/problems/merge-intervals/description
Дан массив интервалов , где intervals[i] = [starti, endi], объедините все пересекающиеся интервалы и верните их.
Пример 1:
Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Пример 2:
Input: intervals = [[1,4],[4,5]]
Output: [[1,5]]
class Solution:
def merge(self, resp_intervals: List[List[int]]) -> List[List[int]]:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
Многие компании в качестве средней задачи, но как правило она идет уже как тяжелая, любят давать задачу на интервалы. Тут могут быть вариации, например даны интервалы, найти пересечения или промежутки.
Также эта задача была в контесте для поступления в школу от озона route256. Причем там эта задача была не самой сложной, где-то выше середины в списке, но если ты решал её и все задачи, которые полегче, то этого было достаточно, чтобы набрать проходной балл. Я встречал эту задачу в ВК и Озоне. Но знаю, что и другие компании любят давать подобные задачи.
14. Merge Intervals (средняя)
leetcode.com/problems/merge-intervals/description
Дан массив интервалов , где intervals[i] = [starti, endi], объедините все пересекающиеся интервалы и верните их.
Пример 1:
Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Пример 2:
Input: intervals = [[1,4],[4,5]]
Output: [[1,5]]
class Solution:
def merge(self, resp_intervals: List[List[int]]) -> List[List[int]]:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
👍3🔥2❤1
Воскресная задача:
15. Contains Duplicate II (легкая)
leetcode.com/problems/contains-duplicate-ii
Для массива целых чисел nums и целое число k, необходимо вернуть true, если в массиве есть два различных индекса i и j, таких что nums[i] == nums[j] и abs(i - j) <= k.
Пример 1:
Input: nums = [1,2,3,1], k = 3
Output: true
Пример 2:
Input: nums = [1,0,1,1], k = 1
Output: true
Пример 3:
Input: nums = [1,2,3,1,2,3], k = 2
Output: false
class Solution:
def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
15. Contains Duplicate II (легкая)
leetcode.com/problems/contains-duplicate-ii
Для массива целых чисел nums и целое число k, необходимо вернуть true, если в массиве есть два различных индекса i и j, таких что nums[i] == nums[j] и abs(i - j) <= k.
Пример 1:
Input: nums = [1,2,3,1], k = 3
Output: true
Пример 2:
Input: nums = [1,0,1,1], k = 1
Output: true
Пример 3:
Input: nums = [1,2,3,1,2,3], k = 2
Output: false
class Solution:
def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
❤3👍1
Приступаем к деревьям
16. Invert Binary Tree (легкая)
https://telegra.ph/Invert-Binary-Tree-legkaya-09-03
leetcode.com/problems/invert-binary-tree
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
16. Invert Binary Tree (легкая)
https://telegra.ph/Invert-Binary-Tree-legkaya-09-03
leetcode.com/problems/invert-binary-tree
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
Telegraph
Invert Binary Tree (легкая)
leetcode.com/problems/invert-binary-tree На вход подается корень двоичного дерева, инвертируйте дерево и верните его корень. Пример 1: Input: root = [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1] Пример 2: Input: root = [2,1,3] Output: [2,3,1] Пример 3: Input: root…
🔥4
Всем привет, сегодня воскресенье, и мы продолжаем разбирать задачи с литкода.
В предыдущей задаче мы немного разобрались, как ходить по узлам дерева, в этой надо будет пройтись сразу по 2-м бинарным деревьям и сравнить их.
17. Same Tree (легкая)
https://telegra.ph/Same-Tree-09-10
leetcode.com/problems/same-tree
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
В предыдущей задаче мы немного разобрались, как ходить по узлам дерева, в этой надо будет пройтись сразу по 2-м бинарным деревьям и сравнить их.
17. Same Tree (легкая)
https://telegra.ph/Same-Tree-09-10
leetcode.com/problems/same-tree
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
«Ваше решение»
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
Telegraph
Same Tree
leetcode.com/problems/same-tree На вход подаются корни 2-х двоичных деревьев p и q. Напишите функцию, которая проверяет, равны ли деревья.Два двоичных дерева считаются равными, если они структурно идентичны и узлы имеют одинаковые значения. Пример 1: Input:…
❤1👍1
Возвращаемся к задачкам по воскресеньям, и продолжаем решать задачи на деревья
18. Subtree of Another Tree (легкая)
leetcode.com/problems/subtree-of-another-tree
Получаем корни двух двоичных деревьев root и subRoot, верните true, если существует поддерево с той же структурой и значениями узлов subRoot, и false в противном случае. Поддерево двоичного дерева — это дерево, состоящее из узла дерева и всех его потомков. Дерево также можно рассматривать как поддерево самого себя.
Примеры смотрите по ссылке leetcode.com/problems/subtree-of-another-tree
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
18. Subtree of Another Tree (легкая)
leetcode.com/problems/subtree-of-another-tree
Получаем корни двух двоичных деревьев root и subRoot, верните true, если существует поддерево с той же структурой и значениями узлов subRoot, и false в противном случае. Поддерево двоичного дерева — это дерево, состоящее из узла дерева и всех его потомков. Дерево также можно рассматривать как поддерево самого себя.
Примеры смотрите по ссылке leetcode.com/problems/subtree-of-another-tree
Ваша задача решить эту задачу на литкоде и успешно засабмитить
*разбор будет в комментариях в нескольких сообщениях, чтобы вы могли подумать над решением
*задачи среднего уровня, если показалась сложной, это вполне нормально
Список всех задач
#ps_leetcode
❤5
Псс, всем привет, воскресная задачка:
Сегодня будет задача, которую я недавно получил на собеседовании и она мне показалась интересной, решил поделиться.
Задача:
Имеется сортированный массив, в котором сделали сдвиг, на сколько сделали сдвиг, нам не известно. Также на вход подается число, надо определить, есть ли это число в этом массиве и вернуть его индекс, если этого числа нет в массиве, то вернуть -1.
Примеры:
get_idx([10, 44, 1, 3, 5, 7, 8], 5) -> 4
get_idx([10, 1, 3, 5, 7, 8], 6) -> -1
Upd:
19. Search in Rotated Sorted Array (средняя)
Задача оказалась на литкоде leetcode.com/problems/search-in-rotated-sorted-array/description
Список всех задач
#ps_leetcode
Сегодня будет задача, которую я недавно получил на собеседовании и она мне показалась интересной, решил поделиться.
Задача:
Имеется сортированный массив, в котором сделали сдвиг, на сколько сделали сдвиг, нам не известно. Также на вход подается число, надо определить, есть ли это число в этом массиве и вернуть его индекс, если этого числа нет в массиве, то вернуть -1.
Примеры:
get_idx([10, 44, 1, 3, 5, 7, 8], 5) -> 4
get_idx([10, 1, 3, 5, 7, 8], 6) -> -1
Upd:
19. Search in Rotated Sorted Array (средняя)
Задача оказалась на литкоде leetcode.com/problems/search-in-rotated-sorted-array/description
Список всех задач
#ps_leetcode
🔥2😁2👍1