Лучшее время для покупки и продажи акций
Условие задачи:
Вам дан массив prices, где prices[i] — цена данной акции на i-й день.
Вы хотите максимизировать свою прибыль, выбрав один день для покупки одной акции и выбрав другой день в будущем для продажи этой акции.
Верните максимальную прибыль, которую вы можете получить от этой сделки. Если вы не можете получить никакой прибыли, верните 0.
Пример:
Ввод:
Покупка во 2-й день (цена = 1) и продажа в 5-й день (цена = 6), прибыль = 6-1 = 5.
Обратите внимание, что покупка во 2-й день и продажа в 1-й день не разрешены, потому что вы должны купить перед продажей.
Ввод:
Условие задачи:
Вам дан массив prices, где prices[i] — цена данной акции на i-й день.
Вы хотите максимизировать свою прибыль, выбрав один день для покупки одной акции и выбрав другой день в будущем для продажи этой акции.
Верните максимальную прибыль, которую вы можете получить от этой сделки. Если вы не можете получить никакой прибыли, верните 0.
Пример:
Ввод:
prices = [7,1,5,3,6,4]
Вывод: 5
Объяснение: Покупка во 2-й день (цена = 1) и продажа в 5-й день (цена = 6), прибыль = 6-1 = 5.
Обратите внимание, что покупка во 2-й день и продажа в 1-й день не разрешены, потому что вы должны купить перед продажей.
Ввод:
prices = [7,6,4,3,1]
Вывод: 0
Решение задачи👍24
Генерация скобок
Сложность задачи: Средняя
Условие задачи:
Дано n пар круглых скобок, напишите функцию для генерации всех комбинаций правильно сформированных круглых скобок.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дано n пар круглых скобок, напишите функцию для генерации всех комбинаций правильно сформированных круглых скобок.
Пример:
Ввод:
n = 3
Вывод: ["((()))","(()())","(())()","()(())","()()()"]
Ввод: n = 1
Вывод: ["()"]
Решение задачи👍23
Поменяйте местами узлы парами
Получив связный список, поменяйте местами каждые два соседних узла и верните его head. Вы должны решить задачу, не изменяя значения в узлах списка (т. е. можно изменить только сами узлы).
Пример 1 (картинка):
Input: head = [1,2,3,4]
Output: [2,1,4,3]
Пример 2:
Input: head = []
Output: []
Пример 3:
Input: head = [1]
Output: [1]
Решение задачи
Получив связный список, поменяйте местами каждые два соседних узла и верните его head. Вы должны решить задачу, не изменяя значения в узлах списка (т. е. можно изменить только сами узлы).
Пример 1 (картинка):
Input: head = [1,2,3,4]
Output: [2,1,4,3]
Пример 2:
Input: head = []
Output: []
Пример 3:
Input: head = [1]
Output: [1]
Решение задачи
👍6🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
Треугольник Паскаля
Сложность задачи: Легкая
Условие задачи:
Дано целое число numRows, верните первые numRows треугольника Паскаля.
В треугольнике Паскаля каждое число является суммой двух чисел непосредственно над ним, как показано на гифке выше.
Пример:
Ввод:
Сложность задачи: Легкая
Условие задачи:
Дано целое число numRows, верните первые numRows треугольника Паскаля.
В треугольнике Паскаля каждое число является суммой двух чисел непосредственно над ним, как показано на гифке выше.
Пример:
Ввод:
numRows = 5
Вывод: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
Ввод: numRows = 1
Вывод: [[1]]
Решение задачи👍30🔥1
Максимальная длина повторяющегося подмассива
Сложность задачи: Средняя
Условие задачи:
Даны два целочисленных массива nums1 и nums2, верните максимальную длину подмассива, который появляется в обоих массивах.
Пример:
Ввод:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Даны два целочисленных массива nums1 и nums2, верните максимальную длину подмассива, который появляется в обоих массивах.
Пример:
Ввод:
nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
Вывод: 3
Объяснение: Повторяющийся подмассив с максимальной длиной будет [3,2,1].Ввод:
nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]
Вывод: 5
Решение задачи👍10
Групповые анаграммы
Сложность задачи: Средняя
Условие задачи:
Дан массив строк strs. Требуется сгруппировать анаграммы вместе. Вы можете вернуть ответ в любом порядке.
Анаграмма — это слово или фраза, образованная путем перестановки букв другого слова или фразы, обычно с использованием всех исходных букв ровно один раз.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан массив строк strs. Требуется сгруппировать анаграммы вместе. Вы можете вернуть ответ в любом порядке.
Анаграмма — это слово или фраза, образованная путем перестановки букв другого слова или фразы, обычно с использованием всех исходных букв ровно один раз.
Пример:
Ввод:
strs = ["eat","tea","tan","ate","nat","bat"]
Вывод: [["bat"],["nat","tan"],["ate","eat","tea"]]
Ввод: strs = [""]
Вывод: [[""]]
Решение задачи👍15
Удалить N-й узел из конца списка
Получив head связанного списка, удалите n-й узел из конца списка и верните его head.
Пример 1 (на картинке):
Ввод: head = [1,2,3,4,5], n = 2
Вывод: [1,2,3,5]
Пример 2:
Ввод: head = [1], n = 1
Вывод: []
Пример 3:
Input: head = [1,2], n = 1
Output: [1]
Решение задачи
Получив head связанного списка, удалите n-й узел из конца списка и верните его head.
Пример 1 (на картинке):
Ввод: head = [1,2,3,4,5], n = 2
Вывод: [1,2,3,5]
Пример 2:
Ввод: head = [1], n = 1
Вывод: []
Пример 3:
Input: head = [1,2], n = 1
Output: [1]
Решение задачи
👍12
Минимальная разница во времени
Сложность задачи: Средняя
Условие задачи:
Дан список 24-часовых временных точек в формате "ЧЧ:ММ". Требуется вернуть минимальную разницу в минутах между любыми двумя временными точками в списке.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан список 24-часовых временных точек в формате "ЧЧ:ММ". Требуется вернуть минимальную разницу в минутах между любыми двумя временными точками в списке.
Пример:
Ввод:
timePoints = ["23:59","00:00"]
Вывод: 1
Ввод: timePoints = ["00:00","23:59","00:00"]
Вывод: 0
Решение задачи👍15
Объединить два отсортированных списка
Вам даны head’ы двух отсортированных связанных списков list1 и list2. Объедините два списка в один отсортированный список. Список должен быть составлен путем соединения узлов первых двух списков. Верните head объединенного связанного списка.
Пример 1 (на картинке):
Ввод: list1 = [1,2,4], list2 = [1,3,4]
Вывод: [1,1,2,3,4,4]
Пример 2:
Ввод: list1 = [], list2 = []
Вывод: []
Пример 3:
Ввод: list1 = [], list2 = [0]
Вывод: [0]
Решение задачи
Вам даны head’ы двух отсортированных связанных списков list1 и list2. Объедините два списка в один отсортированный список. Список должен быть составлен путем соединения узлов первых двух списков. Верните head объединенного связанного списка.
Пример 1 (на картинке):
Ввод: list1 = [1,2,4], list2 = [1,3,4]
Вывод: [1,1,2,3,4,4]
Пример 2:
Ввод: list1 = [], list2 = []
Вывод: []
Пример 3:
Ввод: list1 = [], list2 = [0]
Вывод: [0]
Решение задачи
👍8🤔1
Перестройка строки
Сложность задачи: Средняя
Условие задачи:
Дана строка s. Требуется переставить символы строки s так, чтобы любые два соседних символа не совпадали.
Верните любую возможную перестановку s или верните "", если это невозможно.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дана строка s. Требуется переставить символы строки s так, чтобы любые два соседних символа не совпадали.
Верните любую возможную перестановку s или верните "", если это невозможно.
Пример:
Ввод:
s = "aab"
Вывод: "aba"
Ввод: s = "aaab"
Вывод: ""
Решение задачи👍10
Первый недостающий положительный результат
Получив несортированный целочисленный массив nums, вернуть наименьшее пропущенное положительное целое число. Вы должны реализовать алгоритм, который работает за время O(n) и использует константное дополнительное пространство.
Ввод: nums = [1,2,0]
Вывод: 3
Ввод: nums = [3,4,-1,1]
Вывод: 2
Ввод: nums = [7,8,9,11,12]
Вывод: 1
Решение задачи
Получив несортированный целочисленный массив nums, вернуть наименьшее пропущенное положительное целое число. Вы должны реализовать алгоритм, который работает за время O(n) и использует константное дополнительное пространство.
Ввод: nums = [1,2,0]
Вывод: 3
Ввод: nums = [3,4,-1,1]
Вывод: 2
Ввод: nums = [7,8,9,11,12]
Вывод: 1
Решение задачи
👍5
Конференц-залы II
Сложность задачи: Средняя
Условие задачи:
Дан массив интервалов времени проведения совещаний, intervals, где intervals[i] = [start(i), end(i)]. Найдите минимальное требуемое количество конференц-залов.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан массив интервалов времени проведения совещаний, intervals, где intervals[i] = [start(i), end(i)]. Найдите минимальное требуемое количество конференц-залов.
Пример:
Ввод:
intervals = [[0,30],[5,10],[15,20]]
Вывод: 2
Ввод: intervals = [[7,10],[2,4]]
Вывод: 1
Решение задачи👍10🤔4
Самая длинная последовательная последовательность
Сложность задачи: Средняя
Условие задачи:
Дан несортированный массив целых чисел nums. Требуется вернуть длину самой длинной последовательности последовательных элементов.
Вы должны написать алгоритм, который работает за время O(n).
Пример:
Ввод:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан несортированный массив целых чисел nums. Требуется вернуть длину самой длинной последовательности последовательных элементов.
Вы должны написать алгоритм, который работает за время O(n).
Пример:
Ввод:
nums = [100,4,200,1,3,2]
Вывод: 4
Объяснение: Самая длинная последовательность последовательных элементов — [1, 2, 3, 4]. Следовательно, его длина равна 4.Ввод:
nums = [0,3,7,2,5,8,4,6,0,1]
Вывод: 9
Решение задачи👍10
Удали и Заработай
Сложность задачи: Средняя
Условие задачи:
Вам дан целочисленный массив nums. Вы хотите максимизировать количество очков, которые вы получаете, выполняя следующую операцию любое количество раз:
Выберите любое число nums[i] и удалите его, чтобы заработать очки nums[i]. После этого вы должны удалить каждый элемент, равный nums[i] - 1, и каждый элемент, равный nums[i] + 1.
Верните максимальное количество очков, которое вы можете заработать, применив описанную выше операцию несколько раз.
Пример:
Ввод:
Вы можете выполнять следующие операции:
- Удалите 4, чтобы заработать 4 очка. Следовательно, 3 также удаляется. nums = [2].
- Удалите 2, чтобы заработать 2 очка. nums = [].
Всего вы заработаете 6 баллов.
Ввод:
Сложность задачи: Средняя
Условие задачи:
Вам дан целочисленный массив nums. Вы хотите максимизировать количество очков, которые вы получаете, выполняя следующую операцию любое количество раз:
Выберите любое число nums[i] и удалите его, чтобы заработать очки nums[i]. После этого вы должны удалить каждый элемент, равный nums[i] - 1, и каждый элемент, равный nums[i] + 1.
Верните максимальное количество очков, которое вы можете заработать, применив описанную выше операцию несколько раз.
Пример:
Ввод:
nums = [3,4,2]
Вывод: 6
Объяснение:Вы можете выполнять следующие операции:
- Удалите 4, чтобы заработать 4 очка. Следовательно, 3 также удаляется. nums = [2].
- Удалите 2, чтобы заработать 2 очка. nums = [].
Всего вы заработаете 6 баллов.
Ввод:
nums = [2,2,3,3,3,4]
Вывод: 9
Решение задачи👍6
Приветствую всех, на связи админ! Теперь вы можете присылать нам интересующие вас задачки с LeetCode, которые мы будем в порядке живой очереди публиковать на канале. 👍👍👍👍
@LeetCode_suggestion
@LeetCode_suggestion
🎉16👍7
Product of Array Except Self
Сложность задачи: Средняя
Условие задачи:
Дан целочисленный массив nums, вернуть такой массив answer, что answer[i] равен произведению всех элементов nums, кроме nums[i].
Произведение любого префикса или суффикса чисел гарантированно соответствует 32-битному целому числу.
Вы должны написать алгоритм, который выполняется за время O(n) и не использует операцию деления.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Дан целочисленный массив nums, вернуть такой массив answer, что answer[i] равен произведению всех элементов nums, кроме nums[i].
Произведение любого префикса или суффикса чисел гарантированно соответствует 32-битному целому числу.
Вы должны написать алгоритм, который выполняется за время O(n) и не использует операцию деления.
Пример:
Ввод:
nums = [1,2,3,4]
Вывод: [24,12,8,6]
Ввод: nums = [-1,1,0,-3,3]
Вывод: [0,0,9,0,0]
Решение задачи👍15👎1
Подсчет уникальных символов всех подстрок заданной строки
Сложность задачи: Трудная
Условие задачи:
Давайте определим функцию countUniqueChars(s), которая возвращает количество уникальных символов в s.
Например, вызов countUniqueChars(s), если s = "LEETCODE", тогда "L", "T", "C", "O", "D" являются уникальными символами, поскольку они появляются только один раз в s, поэтому countUniqueChars(s ) = 5.
Для строки s вернуть сумму countUniqueChars(t), где t — подстрока s. Тестовые примеры генерируются таким образом, чтобы ответ помещался в 32-битное целое число.
Обратите внимание, что некоторые подстроки могут повторяться, поэтому в этом случае вам также придется считать повторяющиеся.
Строка s состоит только из заглавных английских букв.
Пример:
Ввод:
Все возможные подстроки: «A», «B», «C», «AB», «BC» и «ABC».
Каждая подстрока состоит только из уникальных букв.
Сумма длин всех подстрок равна 1 + 1 + 1 + 2 + 2 + 3 = 10
Ввод:
Сложность задачи: Трудная
Условие задачи:
Давайте определим функцию countUniqueChars(s), которая возвращает количество уникальных символов в s.
Например, вызов countUniqueChars(s), если s = "LEETCODE", тогда "L", "T", "C", "O", "D" являются уникальными символами, поскольку они появляются только один раз в s, поэтому countUniqueChars(s ) = 5.
Для строки s вернуть сумму countUniqueChars(t), где t — подстрока s. Тестовые примеры генерируются таким образом, чтобы ответ помещался в 32-битное целое число.
Обратите внимание, что некоторые подстроки могут повторяться, поэтому в этом случае вам также придется считать повторяющиеся.
Строка s состоит только из заглавных английских букв.
Пример:
Ввод:
s = "ABC"
Вывод: 10
Объяснение: Все возможные подстроки: «A», «B», «C», «AB», «BC» и «ABC».
Каждая подстрока состоит только из уникальных букв.
Сумма длин всех подстрок равна 1 + 1 + 1 + 2 + 2 + 3 = 10
Ввод:
s = "ABA"
Вывод: 8
Решение задачи👍13
Search Suggestions System
Сложность задачи: Средняя
Условие задачи:
Вам дан массив строк продуктов и строка searchWord.
Разработайте систему, которая предлагает не более трех названий продуктов из продуктов после ввода каждого символа searchWord. Предлагаемые продукты должны иметь общий префикс с searchWord. Если имеется более трех продуктов с общим префиксом, верните три лексикографически минимальных продукта.
Верните список списков предлагаемых продуктов после ввода каждого символа searchWord.
Пример:
Ввод:
После ввода m и mo все продукты совпадают, и мы показываем пользователю ["mobile", "moneypot", "monitor"]
После ввода mou, mous и mouse система предлагает ["mouse","mousepad"].
Ввод:
Сложность задачи: Средняя
Условие задачи:
Вам дан массив строк продуктов и строка searchWord.
Разработайте систему, которая предлагает не более трех названий продуктов из продуктов после ввода каждого символа searchWord. Предлагаемые продукты должны иметь общий префикс с searchWord. Если имеется более трех продуктов с общим префиксом, верните три лексикографически минимальных продукта.
Верните список списков предлагаемых продуктов после ввода каждого символа searchWord.
Пример:
Ввод:
products = ["mobile","mouse","moneypot","monitor","mousepad"], searchWord = "mouse"
Вывод: [
["mobile","moneypot","monitor"],
["mobile","moneypot","monitor"],
["mouse","mousepad"],
["mouse","mousepad"],
["mouse","mousepad"]
]
Объяснение: продукты, отсортированные лексикографически = ["mobile","moneypot","monitor","mouse","mousepad"]После ввода m и mo все продукты совпадают, и мы показываем пользователю ["mobile", "moneypot", "monitor"]
После ввода mou, mous и mouse система предлагает ["mouse","mousepad"].
Ввод:
products = ["havana"], searchWord = "havana"
Вывод: [["havana"],["havana"],["havana"],["havana"],["havana"],["havana"]]
Решение задачи👍7❤1
Знак произведения массива
Сложность задачи: Легкая
Условие задачи:
Существует функция
1, если x положительно
-1, если x отрицательно
0, если x равно 0.
Вам дается целочисленный массив
Пример:
Ввод:
Ввод:
Сложность задачи: Легкая
Условие задачи:
Существует функция
signFunc(x), которая возвращает:1, если x положительно
-1, если x отрицательно
0, если x равно 0.
Вам дается целочисленный массив
nums. Пусть product - это произведение всех значений в массиве nums. Верните signFunc(product).Пример:
Ввод:
nums = [-1,-2,-3,-4,3,2,1]
Вывод: 1
Объяснение: Произведение всех значений в массиве равно 144, а signFunc(144) = 1.Ввод:
nums = [1,5,0,2,-3]
Вывод: 0
Решение задачи👍16
LeetCode Community
Весовая сумма списка Частота встречи задач на собеседованиях за последние шесть месяцев: Facebook* — 88, LinkedIn — 36, Amazon — 5 Условие задачи: Вам предоставлен вложенный список целых чисел NestedList. Каждый элемент представляет собой либо целое число…
Весовая сумма списка 2
Сложность задачи: Средняя
Условие задачи:
Вам дан вложенный список целых чисел nestedList. Каждый элемент является либо целым числом, либо списком, элементы которого также могут быть целыми числами или другими списками.
Глубина целого числа — это количество списков, внутри которых оно находится. Например, во вложенном списке [1,[2,2],[[3],2],1] каждому целочисленному значению соответствует его глубина. Пусть maxDepth будет максимальной глубиной любого целого числа. Вес целого числа равен maxDepth - (глубина целого числа) + 1.
Верните сумму каждого целого числа во вложенном списке, умноженную на его вес.
Значения целых чисел во вложенном списке находятся в диапазоне [-100, 100].
Максимальная глубина любого целого числа меньше или равна 50.
Пример:
Ввод:
1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 8
Ввод:
Сложность задачи: Средняя
Условие задачи:
Вам дан вложенный список целых чисел nestedList. Каждый элемент является либо целым числом, либо списком, элементы которого также могут быть целыми числами или другими списками.
Глубина целого числа — это количество списков, внутри которых оно находится. Например, во вложенном списке [1,[2,2],[[3],2],1] каждому целочисленному значению соответствует его глубина. Пусть maxDepth будет максимальной глубиной любого целого числа. Вес целого числа равен maxDepth - (глубина целого числа) + 1.
Верните сумму каждого целого числа во вложенном списке, умноженную на его вес.
Значения целых чисел во вложенном списке находятся в диапазоне [-100, 100].
Максимальная глубина любого целого числа меньше или равна 50.
Пример:
Ввод:
nestedList = [[1,1],2,[1,1]]
Вывод: 8
Объяснение: Четыре единицы с весом 1, одна двойка с весом 2.1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 8
Ввод:
nestedList = [1,[4,[6]]]
Вывод: 17
Решение задачи👍14
Умножение строк
Сложность задачи: Средняя
Условие задачи:
Даны два неотрицательных целых числа num1 и num2, представленные в виде строк, вернуть произведение num1 и num2, также представленное в виде строки.
Примечание. Вы не должны использовать какую-либо встроенную библиотеку BigInteger или напрямую преобразовывать входные данные в целое число.
Пример:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Даны два неотрицательных целых числа num1 и num2, представленные в виде строк, вернуть произведение num1 и num2, также представленное в виде строки.
Примечание. Вы не должны использовать какую-либо встроенную библиотеку BigInteger или напрямую преобразовывать входные данные в целое число.
Пример:
Ввод:
num1 = "2", num2 = "3"
Вывод: "6"
Ввод: num1 = "123", num2 = "456"
Вывод: "56088"
Решение задачи👍14