Гармоничная подпоследовательность наибольшей длины
Сложность: Средняя
Условие задачи: Мы определяем гармоничный массив как массив, в котором разница между его максимальным значением и минимальным значением равна ровно 1.
Дается целочисленный массив nums, верните длину его самой длинной гармоничной подпоследовательности среди всех его возможных подпоследовательностей.
Подпоследовательность массива - это последовательность, которая может быть получена из массива путем удаления некоторых элементов или вообще без них без изменения порядка остальных элементов.
Пример:
Ввод: nums = [1,3,2,2,5,2,3,7]
Вывод: 5
Объяснение: [3,2,2,2,3] - гармоничная подпоследовательность наибольшей длины.
Ввод: nums = [1,2,3,4]
Вывод: 2
Решение задачи
Сложность: Средняя
Условие задачи: Мы определяем гармоничный массив как массив, в котором разница между его максимальным значением и минимальным значением равна ровно 1.
Дается целочисленный массив nums, верните длину его самой длинной гармоничной подпоследовательности среди всех его возможных подпоследовательностей.
Подпоследовательность массива - это последовательность, которая может быть получена из массива путем удаления некоторых элементов или вообще без них без изменения порядка остальных элементов.
Пример:
Ввод: nums = [1,3,2,2,5,2,3,7]
Вывод: 5
Объяснение: [3,2,2,2,3] - гармоничная подпоследовательность наибольшей длины.
Ввод: nums = [1,2,3,4]
Вывод: 2
Решение задачи
👍5
Минимальная сумма индексов двух списков
Сложность: Лёгкая
Условие задачи: дается два массива строк list1 и list2, найдите общие строки с наименьшей суммой индексов.
Общая строка - это строка, которая появилась как в list1, так и в list2.
Общая строка с наименьшей суммой индексов - это общая строка, такая, что если она появилась в list1[i] и list2[j], то i + j должно быть минимальным значением среди всех других общих строк.
Возвращает все общие строки с наименьшей суммой индексов. Верните ответ в любом порядке.
Пример:
Ввод: list1 = ["Shogun","Tapioca Express","Burger King","KFC"], list2 = ["Piatti","The Grill at Torrey Pines","Hungry Hunter Steakhouse","Shogun"]
Вывод: ["Shogun"]
Решение задачи
Сложность: Лёгкая
Условие задачи: дается два массива строк list1 и list2, найдите общие строки с наименьшей суммой индексов.
Общая строка - это строка, которая появилась как в list1, так и в list2.
Общая строка с наименьшей суммой индексов - это общая строка, такая, что если она появилась в list1[i] и list2[j], то i + j должно быть минимальным значением среди всех других общих строк.
Возвращает все общие строки с наименьшей суммой индексов. Верните ответ в любом порядке.
Пример:
Ввод: list1 = ["Shogun","Tapioca Express","Burger King","KFC"], list2 = ["Piatti","The Grill at Torrey Pines","Hungry Hunter Steakhouse","Shogun"]
Вывод: ["Shogun"]
Решение задачи
👍4
Распределение конфет
Сложность: Лёгкая
Условие задачи: у Алисы есть конфеты, где i-я конфета относится к типу Candytype[i]. Алиса заметила, что начала набирать вес, поэтому обратилась к врачу.
Доктор посоветовал Алисе съесть только n / 2 конфет, которые у нее есть (n всегда четное). Алисе очень нравятся ее конфеты, и она хочет съесть максимальное количество различных видов конфет, все еще следуя советам врача.
Учитывая целочисленный массив candyType длины n, верните максимальное количество различных типов конфет, которые она может съесть, если она съест только n / 2 из них.
Пример:
Ввод: candyType = [1,1,2,2,3,3]
Вывод: 3
Объяснение: Алиса может съесть только 6/2 = 3 конфеты. Поскольку существует только 3 вида, она может съесть по одному из каждого вида.
Ввод: piles = [4,3,6,7], k = 3
Вывод: 12
Решение задачи
Сложность: Лёгкая
Условие задачи: у Алисы есть конфеты, где i-я конфета относится к типу Candytype[i]. Алиса заметила, что начала набирать вес, поэтому обратилась к врачу.
Доктор посоветовал Алисе съесть только n / 2 конфет, которые у нее есть (n всегда четное). Алисе очень нравятся ее конфеты, и она хочет съесть максимальное количество различных видов конфет, все еще следуя советам врача.
Учитывая целочисленный массив candyType длины n, верните максимальное количество различных типов конфет, которые она может съесть, если она съест только n / 2 из них.
Пример:
Ввод: candyType = [1,1,2,2,3,3]
Вывод: 3
Объяснение: Алиса может съесть только 6/2 = 3 конфеты. Поскольку существует только 3 вида, она может съесть по одному из каждого вида.
Ввод: piles = [4,3,6,7], k = 3
Вывод: 12
Решение задачи
👍2
Заправочная станция
Сложность: Средняя
Условие задачи: вдоль кольцевого маршрута расположено n заправочных станций, где количество газа на i-й станции равно gas[i].
У вас есть автомобиль с неограниченным запасом бензина, и проезд от i-й станции до следующей (i + 1)-й станции обходится в стоимость [i] бензина. Вы начинаете путешествие с пустым баком на одной из заправочных станций.
Учитывая два целочисленных массива gas и cost, верните индекс начальной заправочной станции, если вы можете объехать круг один раз по часовой стрелке, в противном случае верните -1. Если существует решение, оно гарантированно будет уникальным
Пример:
Ввод: gas = [1,2,3,4,5], cost = [3,4,5,1,2]
Вывод: 3
Ввод: gas = [2,3,4], cost = [3,4,3]
Вывод: -1
Решение задачи
Сложность: Средняя
Условие задачи: вдоль кольцевого маршрута расположено n заправочных станций, где количество газа на i-й станции равно gas[i].
У вас есть автомобиль с неограниченным запасом бензина, и проезд от i-й станции до следующей (i + 1)-й станции обходится в стоимость [i] бензина. Вы начинаете путешествие с пустым баком на одной из заправочных станций.
Учитывая два целочисленных массива gas и cost, верните индекс начальной заправочной станции, если вы можете объехать круг один раз по часовой стрелке, в противном случае верните -1. Если существует решение, оно гарантированно будет уникальным
Пример:
Ввод: gas = [1,2,3,4,5], cost = [3,4,5,1,2]
Вывод: 3
Ввод: gas = [2,3,4], cost = [3,4,3]
Вывод: -1
Решение задачи
👍3
Количество точек на прямой
Сложность: Тяжёлая
Условие задачи: дается массив точек, где точки [i] = [xi, yi] представляют точку на плоскости X-Y, верните максимальное количество точек, которые лежат на одной прямой.
Пример:
Ввод: points = [[1,1],[2,2],[3,3]]
Вывод: 3
Ввод: points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
Вывод: 4
Решение задачи
Сложность: Тяжёлая
Условие задачи: дается массив точек, где точки [i] = [xi, yi] представляют точку на плоскости X-Y, верните максимальное количество точек, которые лежат на одной прямой.
Пример:
Ввод: points = [[1,1],[2,2],[3,3]]
Вывод: 3
Ввод: points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
Вывод: 4
Решение задачи
👍6🤔3
Минимальная разница между узлами бинарного дерева
Сложность: Лёгкая
Условие задачи: дается корень бинарного дерева поиска , верните минимальную разницу между значениями любых двух различных вершин в дереве.
Пример:
Ввод: root = [4,2,6,1,3]
Вывод: 1
Ввод: root = [1,0,48,null,null,12,49]
Вывод: 1
Решение задачи
Сложность: Лёгкая
Условие задачи: дается корень бинарного дерева поиска , верните минимальную разницу между значениями любых двух различных вершин в дереве.
Пример:
Ввод: root = [4,2,6,1,3]
Вывод: 1
Ввод: root = [1,0,48,null,null,12,49]
Вывод: 1
Решение задачи
👍3
Мороженое
Сложность: Средняя
Условие задачи: стоит душный летний день, и мальчик хочет купить несколько батончиков мороженого.
В магазине есть n батончиков мороженого. Вам дается массив costs длины n, где costs[i] - это цена i-го батончика мороженого в монетах. У мальчика изначально есть монеты, которые можно потратить, и он хочет купить как можно больше батончиков мороженого.
Верните максимальное количество батончиков мороженого, которые мальчик может купить за монеты coins.
Мальчик может купить батончики мороженого в любом порядке.
Пример:
Ввод: costs = [1,3,2,4,1], coins = 7
Вывод: 4
Объяснение:1 + 3 + 2 + 1 = 7.
Ввод: costs = [10,6,8,7,7,8], coins = 5
Вывод: 0
Решение задачи
Сложность: Средняя
Условие задачи: стоит душный летний день, и мальчик хочет купить несколько батончиков мороженого.
В магазине есть n батончиков мороженого. Вам дается массив costs длины n, где costs[i] - это цена i-го батончика мороженого в монетах. У мальчика изначально есть монеты, которые можно потратить, и он хочет купить как можно больше батончиков мороженого.
Верните максимальное количество батончиков мороженого, которые мальчик может купить за монеты coins.
Мальчик может купить батончики мороженого в любом порядке.
Пример:
Ввод: costs = [1,3,2,4,1], coins = 7
Вывод: 4
Объяснение:1 + 3 + 2 + 1 = 7.
Ввод: costs = [10,6,8,7,7,8], coins = 5
Вывод: 0
Решение задачи
👍8❤1
Сортировка столбцов
Сложность: Лёгкая
Условие задачи: предоставляется массив из n строк strs, все одинаковой длины.
Строки могут быть расположены таким образом, чтобы на каждой строке было по одной, образуя сетку. Например, strs = ["abc", "bce", "ce"] может быть организован как:
abc
bce
cae
Вам нужно удалить столбцы, которые не отсортированы лексикографически. В приведенном выше примере (с индексом 0) столбцы 0 ('a', 'b', 'c') и 2 ('c', 'e', 'e') отсортированы, в то время как столбец 1 ('b', 'c', 'a') не отсортирован., таким образом, вы бы удалили столбец 1.
Верните количество столбцов, которые нужно удалять.
Пример:
Ввод: strs = ["cba","daf","ghi"]
Вывод: 1
Ввод: strs = ["a","b"]
Вывод: 0
Решение задачи
Сложность: Лёгкая
Условие задачи: предоставляется массив из n строк strs, все одинаковой длины.
Строки могут быть расположены таким образом, чтобы на каждой строке было по одной, образуя сетку. Например, strs = ["abc", "bce", "ce"] может быть организован как:
abc
bce
cae
Вам нужно удалить столбцы, которые не отсортированы лексикографически. В приведенном выше примере (с индексом 0) столбцы 0 ('a', 'b', 'c') и 2 ('c', 'e', 'e') отсортированы, в то время как столбец 1 ('b', 'c', 'a') не отсортирован., таким образом, вы бы удалили столбец 1.
Верните количество столбцов, которые нужно удалять.
Пример:
Ввод: strs = ["cba","daf","ghi"]
Вывод: 1
Ввод: strs = ["a","b"]
Вывод: 0
Решение задачи
👍2👎2
Сбор урожая яблок
Сложность: Средняя
Условие задачи: дано неориентированное дерево, состоящее из n вершин, пронумерованных от 0 до n-1, в вершинах которого есть несколько яблок. Вы тратите 1 секунду, чтобы пройти по одному ребру дерева. Верните минимальное время в секундах, которое вы должны потратить, чтобы собрать все яблоки на дереве, начиная с вершины 0 и возвращаясь к этой вершине.
Ребра неориентированного дерева заданы в массиве ребер, где ребра[i] = [ai, bi] означают, что существует ребро, соединяющее вершины ai и bi. Кроме того, существует логический массив has Apple, где has Apple[i] = true означает, что в вершине i есть яблоко; в противном случае в ней нет никакого яблока.
Пример:
Ввод: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,true,true,false]
Вывод: 8
Ввод: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,false,true,false]
Вывод: 6
Решение задачи
Сложность: Средняя
Условие задачи: дано неориентированное дерево, состоящее из n вершин, пронумерованных от 0 до n-1, в вершинах которого есть несколько яблок. Вы тратите 1 секунду, чтобы пройти по одному ребру дерева. Верните минимальное время в секундах, которое вы должны потратить, чтобы собрать все яблоки на дереве, начиная с вершины 0 и возвращаясь к этой вершине.
Ребра неориентированного дерева заданы в массиве ребер, где ребра[i] = [ai, bi] означают, что существует ребро, соединяющее вершины ai и bi. Кроме того, существует логический массив has Apple, где has Apple[i] = true означает, что в вершине i есть яблоко; в противном случае в ней нет никакого яблока.
Пример:
Ввод: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,true,true,false]
Вывод: 8
Ввод: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,false,true,false]
Вывод: 6
Решение задачи
👍1
Усадка клумбы
Сложность: Лёгкая
Условие задачи: есть длинная клумба, на которой некоторые участки засажены, а некоторые нет. Однако цветы нельзя сажать на соседних участках.
Учитывая целочисленный массив flowerbed, содержащий 0 и 1, где 0 означает пустой, а 1 означает непустой, и целое число n, верните, если на клумбе можно посадить n новых цветов, не нарушая правила отсутствия соседних цветов.
Пример:
Ввод: flowerbed = [1,0,0,0,1], n = 1
Вывод: true
Ввод: flowerbed = [1,0,0,0,1], n = 2
Вывод: false
Решение задачи
Сложность: Лёгкая
Условие задачи: есть длинная клумба, на которой некоторые участки засажены, а некоторые нет. Однако цветы нельзя сажать на соседних участках.
Учитывая целочисленный массив flowerbed, содержащий 0 и 1, где 0 означает пустой, а 1 означает непустой, и целое число n, верните, если на клумбе можно посадить n новых цветов, не нарушая правила отсутствия соседних цветов.
Пример:
Ввод: flowerbed = [1,0,0,0,1], n = 1
Вывод: true
Ввод: flowerbed = [1,0,0,0,1], n = 2
Вывод: false
Решение задачи
👍2
Количество узлов
Сложность: Средняя
Условие задачи: дано дерево (т.е. связный неориентированный граф, не имеющий циклов), состоящее из n узлов с числом от 0 до n - 1 и ровно n - 1 ребер. Корнем дерева является узел 0, и каждый узел дерева имеет метку, которая представляет собой символ нижнего регистра, указанный в строковых метках (т.е. узел с номером i имеет метку labels[i]).
Массив ребер задан на ребрах фермы[i] = [ai, bi], что означает наличие ребра между узлами ai и bi в дереве.
Возвращает массив размера n, где и[i] - количество узлов в поддереве узла земли, которые имеют ту же метку, что и узел i.
Поддерево дерева - это дерево, состоящее из узла в T и всех его дочерних узлов.
Пример:
Ввод: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], labels = "abaedcd"
Вывод: [2,1,1,1,1,1,1]
Объяснение:
Ввод: n = 4, edges = [[0,1],[1,2],[0,3]], labels = "bbbb"
Вывод: [4,2,1,1]
Решение задачи
Сложность: Средняя
Условие задачи: дано дерево (т.е. связный неориентированный граф, не имеющий циклов), состоящее из n узлов с числом от 0 до n - 1 и ровно n - 1 ребер. Корнем дерева является узел 0, и каждый узел дерева имеет метку, которая представляет собой символ нижнего регистра, указанный в строковых метках (т.е. узел с номером i имеет метку labels[i]).
Массив ребер задан на ребрах фермы[i] = [ai, bi], что означает наличие ребра между узлами ai и bi в дереве.
Возвращает массив размера n, где и[i] - количество узлов в поддереве узла земли, которые имеют ту же метку, что и узел i.
Поддерево дерева - это дерево, состоящее из узла в T и всех его дочерних узлов.
Пример:
Ввод: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], labels = "abaedcd"
Вывод: [2,1,1,1,1,1,1]
Объяснение:
Ввод: n = 4, edges = [[0,1],[1,2],[0,3]], labels = "bbbb"
Вывод: [4,2,1,1]
Решение задачи
👍3
Самый длинный путь с разными соседними символами
Сложность: Тяжёлая
Условие задачи: дано дерево (т.е. связанный неориентированный граф, не имеющий циклов) с корнем в узле 0, состоящее из n узлов, пронумерованных от 0 до n - 1. Дерево представлено родительским массивом с индексом 0 размера n, где родительский элемент[i] является родительским элементом узла i. Поскольку узел 0 является корневым, родительский элемент[0] == -1.
Вам также выдаются строки длиной n, где s[i] - символ, присвоенный узлу i.
Возвращает длину самого длинного пути в дереве таким образом, чтобы ни одной паре соседних узлов пути не был присвоен один и тот же символ.
Пример:
Ввод: parent = [-1,0,0,1,1,2], s = "abacbe"
Вывод: 3
Ввод: parent = [-1,0,0,0], s = "aabc"
Вывод: 3
Решение задачи
Сложность: Тяжёлая
Условие задачи: дано дерево (т.е. связанный неориентированный граф, не имеющий циклов) с корнем в узле 0, состоящее из n узлов, пронумерованных от 0 до n - 1. Дерево представлено родительским массивом с индексом 0 размера n, где родительский элемент[i] является родительским элементом узла i. Поскольку узел 0 является корневым, родительский элемент[0] == -1.
Вам также выдаются строки длиной n, где s[i] - символ, присвоенный узлу i.
Возвращает длину самого длинного пути в дереве таким образом, чтобы ни одной паре соседних узлов пути не был присвоен один и тот же символ.
Пример:
Ввод: parent = [-1,0,0,1,1,2], s = "abacbe"
Вывод: 3
Ввод: parent = [-1,0,0,0], s = "aabc"
Вывод: 3
Решение задачи
👍1
Среднее по уровню
Сложность: Лёгкая
Условие задачи: дается корень двоичного дерева, верните среднее значение узлов на каждом уровне в виде массива. Будут приняты ответы в пределах 10-5 от фактического ответа.
Пример:
Ввод: root = [3,9,20,null,null,15,7]
Вывод: [3.00000,14.50000,11.00000]
Решение задачи
Сложность: Лёгкая
Условие задачи: дается корень двоичного дерева, верните среднее значение узлов на каждом уровне в виде массива. Будут приняты ответы в пределах 10-5 от фактического ответа.
Пример:
Ввод: root = [3,9,20,null,null,15,7]
Вывод: [3.00000,14.50000,11.00000]
Решение задачи
👍6
Строка из дерева
Сложность: Лёгкая
Условие задачи: дается корень двоичного дерева, постройте строку, состоящую из круглых скобок и целых чисел из двоичного дерева с помощью способа обхода предварительного порядка, и верните ее.
Опустите все пары пустых скобок, которые не влияют на взаимно однозначное сопоставление между строкой и исходным двоичным деревом.
Пример:
Ввод: root = [1,2,3,4]
Вывод: "1(2(4))(3)"
Ввод: root = [1,2,3,null,4]
Вывод: "1(2()(4))(3)"
Решение задачи
Сложность: Лёгкая
Условие задачи: дается корень двоичного дерева, постройте строку, состоящую из круглых скобок и целых чисел из двоичного дерева с помощью способа обхода предварительного порядка, и верните ее.
Опустите все пары пустых скобок, которые не влияют на взаимно однозначное сопоставление между строкой и исходным двоичным деревом.
Пример:
Ввод: root = [1,2,3,4]
Вывод: "1(2(4))(3)"
Ввод: root = [1,2,3,null,4]
Вывод: "1(2()(4))(3)"
Решение задачи
❤1👍1
Петля в связном списке II
Сложность: Средняя
Условие задачи: дан связный список, необходимо вернуть позицию элемента, с которого начинается цикл, если же цикл отсутствует, то надо вернуть null.
Пример:
Ввод:
Вывод: последний элемент зацикливается на элементе с индексом
* соответствующий список проиллюстрирован на картинке.
Решение задачи
Сложность: Средняя
Условие задачи: дан связный список, необходимо вернуть позицию элемента, с которого начинается цикл, если же цикл отсутствует, то надо вернуть null.
Пример:
Ввод:
head = [3,2,0,-4], pos = 1Вывод: последний элемент зацикливается на элементе с индексом
1*. * соответствующий список проиллюстрирован на картинке.
Решение задачи
👍5❤1
Наименьшая лексикографически схожая строка
Сложность: Средняя
Условие задачи: даны две строки одинаковой длины s1 и s2 и строка baseStr.
Говорим, что s1[i] и s2[i] являются эквивалентными символами.
Например, если s1 = "abc" и s2 = "cde", то мы имеем 'a' == 'c', 'b' == 'd' и 'c' == 'e'.
Эквивалентные символы следуют обычным правилам отношения эквивалентности:
Рефлексивность: 'a' == 'a'.
Симметрия: 'a' == 'b' подразумевает 'b' == 'a'.
Транзитивность: 'a' == 'b' и 'b' == 'c' подразумевает 'a' == 'c'.
Например, учитывая информацию об эквивалентности из s1 = "abc" и s2 = "cde", "cd" и "ab" являются эквивалентными строками базового Str = "eed", а "aab" является лексикографически наименьшей эквивалентной строкой базового str.
Верните лексикографически наименьшую эквивалентную строку базового Str, используя информацию об эквивалентности из s1 и s2.
Пример:
Ввод: s1 = "parker", s2 = "morris", baseStr = "parser"
Вывод: "makkek"
Ввод: s1 = "hello", s2 = "world", baseStr = "hold"
Вывод: "hdld"
Решение задачи
Сложность: Средняя
Условие задачи: даны две строки одинаковой длины s1 и s2 и строка baseStr.
Говорим, что s1[i] и s2[i] являются эквивалентными символами.
Например, если s1 = "abc" и s2 = "cde", то мы имеем 'a' == 'c', 'b' == 'd' и 'c' == 'e'.
Эквивалентные символы следуют обычным правилам отношения эквивалентности:
Рефлексивность: 'a' == 'a'.
Симметрия: 'a' == 'b' подразумевает 'b' == 'a'.
Транзитивность: 'a' == 'b' и 'b' == 'c' подразумевает 'a' == 'c'.
Например, учитывая информацию об эквивалентности из s1 = "abc" и s2 = "cde", "cd" и "ab" являются эквивалентными строками базового Str = "eed", а "aab" является лексикографически наименьшей эквивалентной строкой базового str.
Верните лексикографически наименьшую эквивалентную строку базового Str, используя информацию об эквивалентности из s1 и s2.
Пример:
Ввод: s1 = "parker", s2 = "morris", baseStr = "parser"
Вывод: "makkek"
Ввод: s1 = "hello", s2 = "world", baseStr = "hold"
Вывод: "hdld"
Решение задачи
👍2
Максимальное среднее подмассива
Сложность: Лёгкая
Условие задачи: дается целочисленный массив nums, состоящий из n элементов и целого числа k.
Найдите непрерывный подмассив, длина которого равна k, который имеет максимальное среднее значение, и верните это значение. Будет принят любой ответ с ошибкой вычисления менее 10-5.
Пример:
Ввод: nums = [1,12,-5,-6,50,3], k = 4
Вывод: 12.75000
Объяснение:
Ввод: nums = [5], k = 1
Вывод: 5.00000
Решение задачи
Сложность: Лёгкая
Условие задачи: дается целочисленный массив nums, состоящий из n элементов и целого числа k.
Найдите непрерывный подмассив, длина которого равна k, который имеет максимальное среднее значение, и верните это значение. Будет принят любой ответ с ошибкой вычисления менее 10-5.
Пример:
Ввод: nums = [1,12,-5,-6,50,3], k = 4
Вывод: 12.75000
Объяснение:
Ввод: nums = [5], k = 1
Вывод: 5.00000
Решение задачи
👍2
Монотонное увеличение
Сложность: Средняя
Условие задачи: бинарная строка монотонно увеличивается, если она состоит из некоторого числа 0 (возможно, ни одного), за которым следует некоторое количество 1 (также возможно, ни одного).
Дана двоичная строка s. Вы можете перевернуть [i], изменив его с 0 на 1 или с 1 на 0.
Верните минимальное количество переворотов, чтобы сделать s монотонно увеличивающимся.
Пример:
Ввод: s = "00110"
Вывод: 1
Объяснение: 00111
Ввод: s = "010110"
Вывод: 2
Решение задачи
Сложность: Средняя
Условие задачи: бинарная строка монотонно увеличивается, если она состоит из некоторого числа 0 (возможно, ни одного), за которым следует некоторое количество 1 (также возможно, ни одного).
Дана двоичная строка s. Вы можете перевернуть [i], изменив его с 0 на 1 или с 1 на 0.
Верните минимальное количество переворотов, чтобы сделать s монотонно увеличивающимся.
Пример:
Ввод: s = "00110"
Вывод: 1
Объяснение: 00111
Ввод: s = "010110"
Вывод: 2
Решение задачи
👍2
Минимальное большее
Сложность: Лёгкая
Условие задачи: задан массив букв символов, отсортированных в порядке неубывания, и целевой символ. В буквах есть по крайней мере два разных символа.
Необходимо вернуть наименьший символ в буквах, который лексикографически больше целевого. Если такого символа не существует, верните первый символ буквами.
Пример:
Ввод: letters = ["c","f","j"], target = "a"
Вывод: "c"
Ввод: letters = ["c","f","j"], target = "c"
Вывод: "f"
Решение задачи
Сложность: Лёгкая
Условие задачи: задан массив букв символов, отсортированных в порядке неубывания, и целевой символ. В буквах есть по крайней мере два разных символа.
Необходимо вернуть наименьший символ в буквах, который лексикографически больше целевого. Если такого символа не существует, верните первый символ буквами.
Пример:
Ввод: letters = ["c","f","j"], target = "a"
Вывод: "c"
Ввод: letters = ["c","f","j"], target = "c"
Вывод: "f"
Решение задачи
Максимальная сумма замкнутого подмассива
Сложность: Средняя
Условие задачи: дается круговой целочисленный массив nums длины n, верните максимально возможную сумму непустого подмассива nums.
Циклический массив означает, что конец массива соединяется с началом массива. Формально следующим элементом nums[i] является nums[(i + 1) % n], а предыдущим элементом nums[i] является nums[(i - 1 + n) % n].
Подмассив может включать в себя каждый элемент фиксированных чисел буфера не более одного раза. Формально, для подмассива nums[i], nums[i + 1], ..., nums[j] не существует i <= k1, k2 <= j с k1 % n == k2 % n.
Пример:
Ввод: nums = [1,-2,3,-2]
Вывод: 3
Объяснение: [3]
Ввод: nums = [5,-3,5]
Вывод: 10
Решение задачи
Сложность: Средняя
Условие задачи: дается круговой целочисленный массив nums длины n, верните максимально возможную сумму непустого подмассива nums.
Циклический массив означает, что конец массива соединяется с началом массива. Формально следующим элементом nums[i] является nums[(i + 1) % n], а предыдущим элементом nums[i] является nums[(i - 1 + n) % n].
Подмассив может включать в себя каждый элемент фиксированных чисел буфера не более одного раза. Формально, для подмассива nums[i], nums[i + 1], ..., nums[j] не существует i <= k1, k2 <= j с k1 % n == k2 % n.
Пример:
Ввод: nums = [1,-2,3,-2]
Вывод: 3
Объяснение: [3]
Ввод: nums = [5,-3,5]
Вывод: 10
Решение задачи
👍2
Строка-перевертыш
Сложность: Лёгкая
Условие задачи: дается две строки s и goal, верните true тогда и только тогда, когда s может стать goal после некоторого количества смен в субботу.
Сдвиг на s состоит в перемещении крайнего левого символа s в крайнюю правую позицию.
Например, если s = "abcde", то после одной смены это будет "bcdea".
Пример:
Ввод: s = "abcde", goal = "cdeab"
Вывод: true
Ввод: s = "abcde", goal = "abced"
Вывод: false
Решение задачи
Сложность: Лёгкая
Условие задачи: дается две строки s и goal, верните true тогда и только тогда, когда s может стать goal после некоторого количества смен в субботу.
Сдвиг на s состоит в перемещении крайнего левого символа s в крайнюю правую позицию.
Например, если s = "abcde", то после одной смены это будет "bcdea".
Пример:
Ввод: s = "abcde", goal = "cdeab"
Вывод: true
Ввод: s = "abcde", goal = "abced"
Вывод: false
Решение задачи
👍1