Сортировка символов по частоте
Сложность: Средняя
Условие задачи: дается строка, необходимо преобразовать данную строку к виду строки по убыванию частоты конкретного символа.
Пример:
Ввод: s = "tree"
Вывод: "eert"
Объяснение:
Ввод: s = "cccaaa"
Вывод:"aaaccc"
Решение задачи
Сложность: Средняя
Условие задачи: дается строка, необходимо преобразовать данную строку к виду строки по убыванию частоты конкретного символа.
Пример:
Ввод: s = "tree"
Вывод: "eert"
Объяснение:
Ввод: s = "cccaaa"
Вывод:"aaaccc"
Решение задачи
👍2
Максимальное количество единиц
Сложность: Лёгкая
Условие задачи: дается бинарный массив (состоит только из 0 и 1). Необходимо вычислить максимальную длину подмассива, в котором присутствуют только 1.
Пример:
Ввод: nums = [1,1,0,1,1,1]
Вывод: 3
Решение задачи
Сложность: Лёгкая
Условие задачи: дается бинарный массив (состоит только из 0 и 1). Необходимо вычислить максимальную длину подмассива, в котором присутствуют только 1.
Пример:
Ввод: nums = [1,1,0,1,1,1]
Вывод: 3
Решение задачи
👍9
Бинарный часы
Сложность: Лёгкая
Условие задачи: часы имеют два дисплея: верхний состоит из 4х слотов, в которых отображаются часы, а также имеется 6 нижних слотов, ответственных за минуты. Каждый слот можно представить нулем или единицей (горит цифра в слоте или же нет).
На вход подается количество включенных слотов, необходимо вывести всевозможные комбинации времени, которые можно получить при таком количестве вклченных слотов.
Пример:
Ввод:
Вывод:
Объяснение:
Ввод:
Вывод: [ ]
Решение задачи
Сложность: Лёгкая
Условие задачи: часы имеют два дисплея: верхний состоит из 4х слотов, в которых отображаются часы, а также имеется 6 нижних слотов, ответственных за минуты. Каждый слот можно представить нулем или единицей (горит цифра в слоте или же нет).
На вход подается количество включенных слотов, необходимо вывести всевозможные комбинации времени, которые можно получить при таком количестве вклченных слотов.
Пример:
Ввод:
turnedOn = 1Вывод:
["0:01","0:02","0:04","0:08","0:16","0:32","1:00","2:00","4:00","8:00"]Объяснение:
Ввод:
turnedOn = 9Вывод: [ ]
Решение задачи
👍9🔥1
Конструирование прямоугольника
Сложность: Лёгкая
Условие задачи: web-разработчикам необходимо знать размеры окна создаваемого приложения. Дается специальная прямоугольная рамка, имеющая размеры L (длина) и W (ширина). На данные габариты накладываются определенные условия:
- площадь прямоугольника, разрабатываемого нами окна, должна быть меньше или равна целевому значению;
- ширина должна быть не больше длины;
- разница между длинной и шириной должна быть минимальной.
Необходимо вычислить пару длины и ширины, удовлетворяющих вышеуказанным условиям.
Пример:
Ввод: area = 4
Вывод: [2,2]
Объяснение:
Ввод: area = 122122
Вывод: [427,286]
Решение задачи
Сложность: Лёгкая
Условие задачи: web-разработчикам необходимо знать размеры окна создаваемого приложения. Дается специальная прямоугольная рамка, имеющая размеры L (длина) и W (ширина). На данные габариты накладываются определенные условия:
- площадь прямоугольника, разрабатываемого нами окна, должна быть меньше или равна целевому значению;
- ширина должна быть не больше длины;
- разница между длинной и шириной должна быть минимальной.
Необходимо вычислить пару длины и ширины, удовлетворяющих вышеуказанным условиям.
Пример:
Ввод: area = 4
Вывод: [2,2]
Объяснение:
Ввод: area = 122122
Вывод: [427,286]
Решение задачи
👍5
Матрица 01
Сложность: Средняя
Условие задачи: дается бинарная матрица (состоит только из 0 и 1). Необходимо вернуть матрицу, в которой будет отображаться расстояние от каждой единичной клетки до ближайшей нулевой.
Пример:
Ввод: mat = [[0,0,0],[0,1,0],[0,0,0]]
Вывод: [[0,0,0],[0,1,0],[0,0,0]]
Объяснение: *во вложении
Ввод: mat = [[0,0,0],[0,1,0],[1,1,1]]
Вывод: [[0,0,0],[0,1,0],[1,2,1]]
Решение задачи
Сложность: Средняя
Условие задачи: дается бинарная матрица (состоит только из 0 и 1). Необходимо вернуть матрицу, в которой будет отображаться расстояние от каждой единичной клетки до ближайшей нулевой.
Пример:
Ввод: mat = [[0,0,0],[0,1,0],[0,0,0]]
Вывод: [[0,0,0],[0,1,0],[0,0,0]]
Объяснение: *во вложении
Ввод: mat = [[0,0,0],[0,1,0],[1,1,1]]
Вывод: [[0,0,0],[0,1,0],[1,2,1]]
Решение задачи
👍3
Сумма на отрезке
Сложность: Лёгкая
Условие задачи: дается бинарное дерево поиска, дается два числа low и high, необходимо посчитать сумму узлов дерева, находящихся в пределах данного отрезка [low, high].
Пример:
Ввод: root = [10,5,15,3,7,null,18], low = 7, high = 15
Вывод: 32
Объяснение: в данный отрезок входят числа 7, 10, 15.
Решение задачи
Сложность: Лёгкая
Условие задачи: дается бинарное дерево поиска, дается два числа low и high, необходимо посчитать сумму узлов дерева, находящихся в пределах данного отрезка [low, high].
Пример:
Ввод: root = [10,5,15,3,7,null,18], low = 7, high = 15
Вывод: 32
Объяснение: в данный отрезок входят числа 7, 10, 15.
Решение задачи
👍6
Все дороги в цель
Сложность: Средняя
Условие задачи: дается направленный ациклический граф, состоящий из n-узлов, пронумерованных от 0 до n-1. Необходимо вывести все пути из начала в конечный узел.
Пример:
Ввод: graph = [[1,2],[3],[3],[]]
Вывод: [[0,1,3],[0,2,3]]
Объяснение: пути: 0 -> 1 -> 3 и 0 -> 2 -> 3.
Ввод: graph = [[4,3,1],[3,2,4],[3],[4],[]]
Вывод: [[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]
Решение задачи
Сложность: Средняя
Условие задачи: дается направленный ациклический граф, состоящий из n-узлов, пронумерованных от 0 до n-1. Необходимо вывести все пути из начала в конечный узел.
Пример:
Ввод: graph = [[1,2],[3],[3],[]]
Вывод: [[0,1,3],[0,2,3]]
Объяснение: пути: 0 -> 1 -> 3 и 0 -> 2 -> 3.
Ввод: graph = [[4,3,1],[3,2,4],[3],[4],[]]
Вывод: [[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]
Решение задачи
👍2❤1
Схожие деревья
Сложность: Лёгкая
Условие задачи: необходимо рассмотреть конечные листья бинарного дерева слева направо, а точнее их значения.
Два дерева считаются схожими по последним потомкам в случае если последовательность последних потомков и в первом и во втором деревьях идентична.
Пример:
Ввод: root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
Вывод: true
Объяснение: *во вложении
Решение задачи
Сложность: Лёгкая
Условие задачи: необходимо рассмотреть конечные листья бинарного дерева слева направо, а точнее их значения.
Два дерева считаются схожими по последним потомкам в случае если последовательность последних потомков и в первом и во втором деревьях идентична.
Пример:
Ввод: root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
Вывод: true
Объяснение: *во вложении
Решение задачи
👍2
Возможное дробление
Сложность: Средняя
Условие задачи: необходимо разделить группу из n-человек в две группы произвольного размера или же определить невозможность такого разделения. Каждый человек из группы может недолюбливать кого-то другого. Именно поэтому не стоит размещать их в одной групп.
На вход подается список неприязни каждого человека.
Пример:
Ввод: n = 4, dislikes = [[1,2],[1,3],[2,4]]
Вывод: true
Объяснение:
Ввод: n = 3, dislikes = [[1,2],[1,3],[2,3]]
Вывод: false
Решение задачи
Сложность: Средняя
Условие задачи: необходимо разделить группу из n-человек в две группы произвольного размера или же определить невозможность такого разделения. Каждый человек из группы может недолюбливать кого-то другого. Именно поэтому не стоит размещать их в одной групп.
На вход подается список неприязни каждого человека.
Пример:
Ввод: n = 4, dislikes = [[1,2],[1,3],[2,4]]
Вывод: true
Объяснение:
Ввод: n = 3, dislikes = [[1,2],[1,3],[2,3]]
Вывод: false
Решение задачи
👍2
Максимальная разница между узлом и предком
Сложность: Средняя
Условие задачи: дается бинарное дерево, необходимо вычислить максимальное значение разницы между двумя узлами, при этом должно соблюдаться строгое условие на узлы: один должен быть потомком, а другой быть его прямым родителем.
Пример:
Ввод:
Вывод:
Объяснение: некоторые из комбинаций пар потомок-родитель:
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: дается бинарное дерево, необходимо вычислить максимальное значение разницы между двумя узлами, при этом должно соблюдаться строгое условие на узлы: один должен быть потомком, а другой быть его прямым родителем.
Пример:
Ввод:
root = [8,3,10,1,6,null,14,null,null,4,7,13]Вывод:
7Объяснение: некоторые из комбинаций пар потомок-родитель:
|8 - 3| = 5
|3 - 7| = 4
|8 - 1| = 7
|10 - 13| = 3Ввод:
root = [1,null,2,null,0,3]Вывод:
3Решение задачи
👍2
Максимальное произведение разделенного бинарного дерева
Сложность: Средняя
Условие задачи: дается корень бинарного дерева, необходимо ражзделить его на две части таким образом, чтобы при извлечении одного ребра произведение сумм двух поддеревьев было максимальным.
Необходимо вычислить это произведение. Так как произведение может быть слишком большим, то необходимо посчитать результат по модулю 1е9 + 7.
Пример:
Ввод:
Вывод:
Объяснение: *во вложении
Решение задачи
Сложность: Средняя
Условие задачи: дается корень бинарного дерева, необходимо ражзделить его на две части таким образом, чтобы при извлечении одного ребра произведение сумм двух поддеревьев было максимальным.
Необходимо вычислить это произведение. Так как произведение может быть слишком большим, то необходимо посчитать результат по модулю 1е9 + 7.
Пример:
Ввод:
root = [1,2,3,4,5,6]Вывод:
110Объяснение: *во вложении
Решение задачи
Максимальная сумма по ребрам бинарного дерева
Сложность: Тяжёлая
Условие задачи: путем в бинарном дереве является последовательность узлов, где каждая пара соседних узлов в последовательности соединена ребром. Узел может появляться в последовательности лишь единожды. Путь не обязательно должен проходить через корень дерева.
Сумма по ребрам в дереве представляет из себя сумму значений из узлов.
На вход подается корень, необходимо вычислить максимальную сумму по ребрам.
Пример:
Ввод:
Вывод:
Объяснение: путь
Решение задачи
Сложность: Тяжёлая
Условие задачи: путем в бинарном дереве является последовательность узлов, где каждая пара соседних узлов в последовательности соединена ребром. Узел может появляться в последовательности лишь единожды. Путь не обязательно должен проходить через корень дерева.
Сумма по ребрам в дереве представляет из себя сумму значений из узлов.
На вход подается корень, необходимо вычислить максимальную сумму по ребрам.
Пример:
Ввод:
root = [-10,9,20,null,null,15,7]Вывод:
42Объяснение: путь
15 -> 20 -> 7 имеет наибольшую сумму в дереве. Решение задачи
👍3
Подъем по ступеням
Сложность: Лёгкая
Условие задачи: человек поднимается по ступенькам. Для подъема на вершину лестницы необходимо сделать n шагов.
При каждом шаге можно делать выбор: подниматься на 1 или же на 2 шага. Нужно посчитать сколькими способами можно подняться на вершину.
Пример:
Ввод: n = 2
Вывод: 2
Объяснение: существует лишь два варианта:
1. 1 шаг + 1 шаг;
2. 2 шага.
Ввод: n = 3
Вывод: 3
Объяснение:
1. 1 шаг + 1 шаг + 1 шаг
2. 1 шаг + 2 шага
3. 2 шага + 1 шаг
Решение задачи
Сложность: Лёгкая
Условие задачи: человек поднимается по ступенькам. Для подъема на вершину лестницы необходимо сделать n шагов.
При каждом шаге можно делать выбор: подниматься на 1 или же на 2 шага. Нужно посчитать сколькими способами можно подняться на вершину.
Пример:
Ввод: n = 2
Вывод: 2
Объяснение: существует лишь два варианта:
1. 1 шаг + 1 шаг;
2. 2 шага.
Ввод: n = 3
Вывод: 3
Объяснение:
1. 1 шаг + 1 шаг + 1 шаг
2. 1 шаг + 2 шага
3. 2 шага + 1 шаг
Решение задачи
👍3
Атака Тимо
Сложность: Лёгкая
Условие задачи: происходит абстрактная ситуация наш персонаж Тимо атакует своего соперника Эша. Результатом атаки является отравление оппонента на
Если Тимо решит нанести ещё один удар до окончания действия отравления от предыдущего, то итоговое отравление закончится через
На вход подаётся массив из моментов времени нападений, а также длительность действия яда. Необходимо вычислить суммарную длительность действия отравы.
Пример:
Ввод:
Сложность: Лёгкая
Условие задачи: происходит абстрактная ситуация наш персонаж Тимо атакует своего соперника Эша. Результатом атаки является отравление оппонента на
duration секунд. То есть начав атаку в момент времени t отравление будет длиться в промежуток времени [t, t + duration - 1]. Если Тимо решит нанести ещё один удар до окончания действия отравления от предыдущего, то итоговое отравление закончится через
duration секунд. На вход подаётся массив из моментов времени нападений, а также длительность действия яда. Необходимо вычислить суммарную длительность действия отравы.
Пример:
Ввод:
timeSeries = [1,4], duration = 2
Вывод: 4
Решение задачи👍7
Возрастающая подпоследовательность наибольшей длины
Сложность: Средняя
Условие задачи: даётся массив, необходимо вычислить наибольшую длину строго возрастающей подпоследовательности.
Пример:
Ввод: nums = [10,9,2,5,3,7,101,18]
Вывод: 4
Объяснение: подпоследовательность [2,3,7,101] имеет наибольшую длину.
Решение задачи
Сложность: Средняя
Условие задачи: даётся массив, необходимо вычислить наибольшую длину строго возрастающей подпоследовательности.
Пример:
Ввод: nums = [10,9,2,5,3,7,101,18]
Вывод: 4
Объяснение: подпоследовательность [2,3,7,101] имеет наибольшую длину.
Решение задачи
👍1👎1
Ряд клавиатуры
Сложность: Лёгкая
Условие задачи: дается массив из строк, необходимо вернуть те строки из массива, которые могут быть набраны лишь при использовании знаков из одного ряда.
Пример:
Ввод:
Вывод:
Объяснение:
Ввод:
Вывод: [ ]
Решение задачи
Сложность: Лёгкая
Условие задачи: дается массив из строк, необходимо вернуть те строки из массива, которые могут быть набраны лишь при использовании знаков из одного ряда.
Пример:
Ввод:
words = ["Hello","Alaska","Dad","Peace"]Вывод:
["Alaska","Dad"]Объяснение:
Ввод:
words = ["omk"]Вывод: [ ]
Решение задачи
👍5