Минимальный размер подмассива с суммой
Сложность: Средняя
Условие задачи: дан целочисленный массив и значение целевой суммы, необходимо вернуть минимальную длину подмассива, сумма чисел в котором больше или равна целевому значению, в случае отсутствия решения - вернуть 0.
Пример:
Ввод: target = 7, nums = [2,3,1,2,4,3]
Вывод: 2
Объяснение: сумма в подмассиве [4,3] равна цели - 7
Решение задачи
Сложность: Средняя
Условие задачи: дан целочисленный массив и значение целевой суммы, необходимо вернуть минимальную длину подмассива, сумма чисел в котором больше или равна целевому значению, в случае отсутствия решения - вернуть 0.
Пример:
Ввод: target = 7, nums = [2,3,1,2,4,3]
Вывод: 2
Объяснение: сумма в подмассиве [4,3] равна цели - 7
Решение задачи
👍2
Раскладка костей
Сложность: Средняя
Условие задачи: есть два типа костей: типа domino и типа tromino.
Дается целое число n, необходимо вычислить количество комбинаций чтобы выложить поле размером 2 x n при помощи двух типов костей.
При укладке плитки каждый квадрат должен быть покрыт плиткой. Две плитки различны тогда и только тогда, когда на доске есть две смежные в 4 направлениях ячейки, такие, что ровно в одной из плиток оба квадрата заняты плиткой.
Пример:
Ввод: n = 3
Вывод: 5
Объяснение: *во вложении
Решение задачи
Сложность: Средняя
Условие задачи: есть два типа костей: типа domino и типа tromino.
Дается целое число n, необходимо вычислить количество комбинаций чтобы выложить поле размером 2 x n при помощи двух типов костей.
При укладке плитки каждый квадрат должен быть покрыт плиткой. Две плитки различны тогда и только тогда, когда на доске есть две смежные в 4 направлениях ячейки, такие, что ровно в одной из плиток оба квадрата заняты плиткой.
Пример:
Ввод: n = 3
Вывод: 5
Объяснение: *во вложении
Решение задачи
👍1
Очередь через стак
Сложность: Лёгкая
Условие задачи: необходимо реализовать очередь, используя лишь два стака. Созданная очередь, должна поддерживать все операции, что и обычная (push, peek, pop, empty).
- void push(int x): добавление в конец очереди.
- int pop() удаление верхнего элемента из очереди и возврат его значения.
- int peek() возврат верхнего значения.
- boolean empty() проверка на наличие элементов в очереди.
Пример:
Ввод: ["MyQueue", "push", "push", "peek", "pop", "empty"]
[[ ], [1], [2], [], [ ], [ ] ]
Вывод: [null, null, null, 1, 1, false]
Объяснение:
MyQueue myQueue = new MyQueue();
myQueue.push(1); // очередь: [1]
myQueue.push(2); // очередь: [1, 2]
myQueue.peek(); // return 1
myQueue.pop(); // return 1, очередь [2]
myQueue.empty(); // return false
Решение задачи
Сложность: Лёгкая
Условие задачи: необходимо реализовать очередь, используя лишь два стака. Созданная очередь, должна поддерживать все операции, что и обычная (push, peek, pop, empty).
- void push(int x): добавление в конец очереди.
- int pop() удаление верхнего элемента из очереди и возврат его значения.
- int peek() возврат верхнего значения.
- boolean empty() проверка на наличие элементов в очереди.
Пример:
Ввод: ["MyQueue", "push", "push", "peek", "pop", "empty"]
[[ ], [1], [2], [], [ ], [ ] ]
Вывод: [null, null, null, 1, 1, false]
Объяснение:
MyQueue myQueue = new MyQueue();
myQueue.push(1); // очередь: [1]
myQueue.push(2); // очередь: [1, 2]
myQueue.peek(); // return 1
myQueue.pop(); // return 1, очередь [2]
myQueue.empty(); // return false
Решение задачи
👍1
Максимальное число из 6 и 9
Сложность: Лёгкая
Условие задачи: дается число, полностью состоящее из 6 и 9. Необходимо вычислить наибольшее число в данной раскладке, при этом имея возможность заменить не более одной шестерки на девятку.
Пример:
Ввод: num = 9669
Вывод: 9969
Ввод: num = 9996
Вывод: 9999
Решение задачи
Сложность: Лёгкая
Условие задачи: дается число, полностью состоящее из 6 и 9. Необходимо вычислить наибольшее число в данной раскладке, при этом имея возможность заменить не более одной шестерки на девятку.
Пример:
Ввод: num = 9669
Вывод: 9969
Ввод: num = 9996
Вывод: 9999
Решение задачи
👍3
Очередь через стак
Сложность: Лёгкая
Условие задачи: необходимо реализовать очередь, используя лишь два стака. Созданная очередь, должна поддерживать все операции, что и обычная (push, peek, pop, empty).
- void push(int x): добавление в конец очереди.
- int pop() удаление верхнего элемента из очереди и возврат его значения.
- int peek() возврат верхнего значения.
- boolean empty() проверка на наличие элементов в очереди.
Пример:
Ввод: ["MyQueue", "push", "push", "peek", "pop", "empty"]
[[ ], [1], [2], [], [ ], [ ] ]
Вывод: [null, null, null, 1, 1, false]
Объяснение:
MyQueue myQueue = new MyQueue();
myQueue.push(1); // очередь: [1]
myQueue.push(2); // очередь: [1, 2]
myQueue.peek(); // return 1
myQueue.pop(); // return 1, очередь [2]
myQueue.empty(); // return false
Решение задачи
Сложность: Лёгкая
Условие задачи: необходимо реализовать очередь, используя лишь два стака. Созданная очередь, должна поддерживать все операции, что и обычная (push, peek, pop, empty).
- void push(int x): добавление в конец очереди.
- int pop() удаление верхнего элемента из очереди и возврат его значения.
- int peek() возврат верхнего значения.
- boolean empty() проверка на наличие элементов в очереди.
Пример:
Ввод: ["MyQueue", "push", "push", "peek", "pop", "empty"]
[[ ], [1], [2], [], [ ], [ ] ]
Вывод: [null, null, null, 1, 1, false]
Объяснение:
MyQueue myQueue = new MyQueue();
myQueue.push(1); // очередь: [1]
myQueue.push(2); // очередь: [1, 2]
myQueue.peek(); // return 1
myQueue.pop(); // return 1, очередь [2]
myQueue.empty(); // return false
Решение задачи
❤2👍1
Максимальное число из 6 и 9
Сложность: Лёгкая
Условие задачи: дается число, полностью состоящее из 6 и 9. Необходимо вычислить наибольшее число в данной раскладке, при этом имея возможность заменить не более одной шестерки на девятку.
Пример:
Ввод: num = 9669
Вывод: 9969
Ввод: num = 9996
Вывод: 9999
Решение задачи
Сложность: Лёгкая
Условие задачи: дается число, полностью состоящее из 6 и 9. Необходимо вычислить наибольшее число в данной раскладке, при этом имея возможность заменить не более одной шестерки на девятку.
Пример:
Ввод: num = 9669
Вывод: 9969
Ввод: num = 9996
Вывод: 9999
Решение задачи
👍1
Середина связного списка
Сложность: Лёгкая
Условие задачи: дан связный список. Необходимо вернуть указатель на серединный элемент исходного списка.
Пример:
Ввод:
Решение задачи
Сложность: Лёгкая
Условие задачи: дан связный список. Необходимо вернуть указатель на серединный элемент исходного списка.
Пример:
Ввод:
head = [1,2,3,4,5]
Вывод: [3,4,5]
Объяснение: серединный узел - узел 3.
Ввод: head = [1,2,3,4,5,6]
Вывод: [4,5,6]
Объяснение: лист имеет два серединных значения: 3 и 4, мы возвращаем второй. Решение задачи
❤1👍1
Почему одиночество в соцсетях стало ЭПИДЕМИЕЙ 2025?
Парадокс: тысячи "друзей", но пустота внутри. Лайки не лечат страх упустить важное, а усиливают изоляцию (данные ВОЗ: +58% тревожности ). Алгоритмы показывают "идеальную" жизнь других, убивая самооценку ⚡️
Выход есть! 👇
Не удаляйтесь — меняйте фокус:
Ищите сообщества по УЗКОМУ интересу — там искренность;
подробнее читайте в канале
💡 Спасение — не в отключении, а в перезагрузке цели! 👉 Читать подробнее
Реклама. ИП Теребенин Евгений Валентинович erid:2Vtzqw6oaXa
Парадокс: тысячи "друзей", но пустота внутри. Лайки не лечат страх упустить важное, а усиливают изоляцию (данные ВОЗ: +58% тревожности ). Алгоритмы показывают "идеальную" жизнь других, убивая самооценку ⚡️
Выход есть! 👇
Не удаляйтесь — меняйте фокус:
Ищите сообщества по УЗКОМУ интересу — там искренность;
подробнее читайте в канале
💡 Спасение — не в отключении, а в перезагрузке цели! 👉 Читать подробнее
Реклама. ИП Теребенин Евгений Валентинович erid:2Vtzqw6oaXa
👎1
Калькулятор II
Сложность: Средняя
Условие задачи: на вход подается строка, которая представляет математическое выражение. Необходимо вывести результат математического выражения.
Целочисленное деление округляет число в сторону нуля.
Нельзя пользоваться встроенными функциями.
Пример:
Ввод: s = "3+2*2"
Вывод: 7
Ввод: s = " 3/2 "
Вывод: 1
Решение задачи
Сложность: Средняя
Условие задачи: на вход подается строка, которая представляет математическое выражение. Необходимо вывести результат математического выражения.
Целочисленное деление округляет число в сторону нуля.
Нельзя пользоваться встроенными функциями.
Пример:
Ввод: s = "3+2*2"
Вывод: 7
Ввод: s = " 3/2 "
Вывод: 1
Решение задачи
👍2
Наикратчайший путь в бинарной матрице
Сложность: Средняя
Условие задачи: дана квадратная матрица, необходимо посчитать длину (количество посещенных клеток) самой короткой тропы.
Путь должен соответствовать следующим условиям:
- начинаться в левой верхней клетке, заканчиваться в правой нижней;
- все ячейки по пути должны иметь нулевые значения;
- клетки по пути могут быть соединены в любом из 8-ми направлений.
В случае отсутствии подобного пути, вернуть -1.
Пример:
Ввод: grid = [[0,1],[1,0]]
Вывод: 2
Ввод: grid = [[0,0,0],[1,1,0],[1,1,0]]
Вывод: 4
Решение задачи
Сложность: Средняя
Условие задачи: дана квадратная матрица, необходимо посчитать длину (количество посещенных клеток) самой короткой тропы.
Путь должен соответствовать следующим условиям:
- начинаться в левой верхней клетке, заканчиваться в правой нижней;
- все ячейки по пути должны иметь нулевые значения;
- клетки по пути могут быть соединены в любом из 8-ми направлений.
В случае отсутствии подобного пути, вернуть -1.
Пример:
Ввод: grid = [[0,1],[1,0]]
Вывод: 2
Ввод: grid = [[0,0,0],[1,1,0],[1,1,0]]
Вывод: 4
Решение задачи
👍1👎1
Форматирование
Сложность: Лёгкая
Условие задачи: дается номер водительского удостоверения, представленный строкой. Символы в номере могут быть разбиты на n+1 групп. Также дается число k.
Необходимо преобразовать номер в строку по k-символов. Однако лишь первая группа может быть меньше, чем k-символов. Помимо этого все символы нижнего регистра необходимо изменить на верхний регистр.
Пример:
Ввод: s = "5F3Z-2e-9-w", k = 4
Вывод: "5F3Z-2E9W"
Объяснение:
Ввод: s = "2-5g-3-J", k = 2
Вывод: s = "2-5g-3-J", k = 2
Решение задачи
Сложность: Лёгкая
Условие задачи: дается номер водительского удостоверения, представленный строкой. Символы в номере могут быть разбиты на n+1 групп. Также дается число k.
Необходимо преобразовать номер в строку по k-символов. Однако лишь первая группа может быть меньше, чем k-символов. Помимо этого все символы нижнего регистра необходимо изменить на верхний регистр.
Пример:
Ввод: s = "5F3Z-2e-9-w", k = 4
Вывод: "5F3Z-2E9W"
Объяснение:
Ввод: s = "2-5g-3-J", k = 2
Вывод: s = "2-5g-3-J", k = 2
Решение задачи
👍1
Общая подпоследовательность наибольшей длины
Сложность: Средняя
Условие задачи: на вход подаются две строки, необходимо вывести их наидлиннейшую общую подпоследовательность, а точнее ее длину.
Подпоследовательность - совокупность символов, не обязательно смежных, идущих слева направо в том же порядке, что и в исходной строке.
Пример:
Ввод: text1 = "abcde", text2 = "ace"
Вывод: 3
Объяснение: "ace"
Ввод: text1 = "abc", text2 = "def"
Вывод: 0
Решение задачи
Сложность: Средняя
Условие задачи: на вход подаются две строки, необходимо вывести их наидлиннейшую общую подпоследовательность, а точнее ее длину.
Подпоследовательность - совокупность символов, не обязательно смежных, идущих слева направо в том же порядке, что и в исходной строке.
Пример:
Ввод: text1 = "abcde", text2 = "ace"
Вывод: 3
Объяснение: "ace"
Ввод: text1 = "abc", text2 = "def"
Вывод: 0
Решение задачи
👍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
Решение задачи
Сложность: Средняя
Условие задачи: вдоль кольцевого маршрута расположено 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
Решение задачи
👍2
Пацифисты
Сложность: Средняя
Условие задачи: вы менеджер баскетбольной команды. Для предстоящего турнира вы хотите выбрать команду с наибольшим общим счетом. Счет команды - это сумма очков всех игроков в команде.
Однако баскетбольной команде не разрешается иметь конфликтов. Конфликт возникает, если у младшего игрока строго более высокий балл, чем у старшего игрока. Конфликт не возникает между игроками одного возраста.
Учитывая два списка, баллы и возрасты, где каждый балл [i] и возраст [i] представляют счет и возраст i-го игрока соответственно, возвращают наивысший общий балл всех возможных баскетбольных команд.
Пример:
Ввод: scores = [1,3,5,10,15], ages = [1,2,3,4,5]
Вывод: 34
Ввод: scores = [4,5,6,5], ages = [2,1,2,1]
Вывод: 16
Решение задачи
Сложность: Средняя
Условие задачи: вы менеджер баскетбольной команды. Для предстоящего турнира вы хотите выбрать команду с наибольшим общим счетом. Счет команды - это сумма очков всех игроков в команде.
Однако баскетбольной команде не разрешается иметь конфликтов. Конфликт возникает, если у младшего игрока строго более высокий балл, чем у старшего игрока. Конфликт не возникает между игроками одного возраста.
Учитывая два списка, баллы и возрасты, где каждый балл [i] и возраст [i] представляют счет и возраст i-го игрока соответственно, возвращают наивысший общий балл всех возможных баскетбольных команд.
Пример:
Ввод: scores = [1,3,5,10,15], ages = [1,2,3,4,5]
Вывод: 34
Ввод: scores = [4,5,6,5], ages = [2,1,2,1]
Вывод: 16
Решение задачи
👍2
Наибольший общий делитель строки
Сложность: Лёгкая
Условие задачи: для двух строк s и t мы говорим "t делит s" тогда и только тогда, когда s = t + ... + t (т.е. t объединяется с самим собой один или несколько раз).
Дается две строки str1 и str2, верните самую большую строку x, такую, что x делит как str1, так и str2.
Пример:
Ввод: str1 = "ABCABC", str2 = "ABC"
Вывод: "ABC"
Ввод: str1 = "ABABAB", str2 = "ABAB"
Вывод: "AB"
Решение задачи
Сложность: Лёгкая
Условие задачи: для двух строк s и t мы говорим "t делит s" тогда и только тогда, когда s = t + ... + t (т.е. t объединяется с самим собой один или несколько раз).
Дается две строки str1 и str2, верните самую большую строку x, такую, что x делит как str1, так и str2.
Пример:
Ввод: str1 = "ABCABC", str2 = "ABC"
Вывод: "ABC"
Ввод: str1 = "ABABAB", str2 = "ABAB"
Вывод: "AB"
Решение задачи
❤1👍1🔥1
Международная азбука Морзе
Сложность: Лёгкая
Условие задачи: международная азбука Морзе определяет стандартную кодировку, в которой каждая буква сопоставляется с серией точек и тире следующим образом:
"a" соответствует ".-",
"b" соответствует "-...",
"c" соответствует "-.-." и так далее.
Для удобства ниже приведена полная таблица для 26 букв английского алфавита:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
Дан массив строк words, где каждое слово может быть записано как объединение азбуки Морзе каждой буквы.
Верните количество различных преобразований среди всех слов, которые у нас есть.
Пример:
Ввод: words = ["gin","zen","gig","msg"]
Вывод: 2
Объяснение:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."
Ввод: words = ["a"]
Вывод: 1
Решение задачи
Сложность: Лёгкая
Условие задачи: международная азбука Морзе определяет стандартную кодировку, в которой каждая буква сопоставляется с серией точек и тире следующим образом:
"a" соответствует ".-",
"b" соответствует "-...",
"c" соответствует "-.-." и так далее.
Для удобства ниже приведена полная таблица для 26 букв английского алфавита:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
Дан массив строк words, где каждое слово может быть записано как объединение азбуки Морзе каждой буквы.
Верните количество различных преобразований среди всех слов, которые у нас есть.
Пример:
Ввод: words = ["gin","zen","gig","msg"]
Вывод: 2
Объяснение:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."
Ввод: words = ["a"]
Вывод: 1
Решение задачи
❤1👍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]
Решение задачи
❤1👍1
Подсчет подостровов
Сложность: Средняя
Условие задачи: дается два двумерных массива, содержащих нули (означают воду) и единицы (суша). Остров - совокупность единиц, соединенных между собой в четырех направлениях (по горизонтали или вертикали).
Острова на второй решетке рассматриваются как подострова только в случае полного соответствия отображения с первой решетки.
Необходимо вычислить количество подостровов на втором поле.
Пример:
Ввод:
Вывод:
Объяснение:
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: дается два двумерных массива, содержащих нули (означают воду) и единицы (суша). Остров - совокупность единиц, соединенных между собой в четырех направлениях (по горизонтали или вертикали).
Острова на второй решетке рассматриваются как подострова только в случае полного соответствия отображения с первой решетки.
Необходимо вычислить количество подостровов на втором поле.
Пример:
Ввод:
grid1 = [[1,1,1,0,0],[0,1,1,1,1],[0,0,0,0,0],[1,0,0,0,0],[1,1,0,1,1]], grid2 = [[1,1,1,0,0],[0,0,1,1,1],[0,1,0,0,0],[1,0,1,1,0],[0,1,0,1,0]]Вывод:
3Объяснение:
Ввод:
grid1 = [[1,0,1,0,1],[1,1,1,1,1],[0,0,0,0,0],[1,1,1,1,1],[1,0,1,0,1]], grid2 = [[0,0,0,0,0],[1,1,1,1,1],[0,1,0,1,0],[0,1,0,1,0],[1,0,0,0,1]]Вывод:
2 Решение задачи
👍1
Путь минимальной суммы
Сложность: Средняя
Условие задачи: дается двумерная матрица, заполненная неотрицательными числами. Необходимо найти путь из левого верхнего угла в правый нижний, который имеет наименьшую сумму.
Двигаться можно лишь вправо и вниз.
Пример:
Ввод: grid = [[1,3,1],[1,5,1],[4,2,1]]
Вывод: 7
Объяснение: *во вложении
Решение задачи
Сложность: Средняя
Условие задачи: дается двумерная матрица, заполненная неотрицательными числами. Необходимо найти путь из левого верхнего угла в правый нижний, который имеет наименьшую сумму.
Двигаться можно лишь вправо и вниз.
Пример:
Ввод: grid = [[1,3,1],[1,5,1],[4,2,1]]
Вывод: 7
Объяснение: *во вложении
Решение задачи
👍1
Избыточность соединения
Сложность: Средняя
Условие задачи: дается ненправленный граф, не имеющий циклов.
Узлы графа соединены между собой и отражаются списком соединения
В графе имеется избытоное ребро, которое может быть безболезнено извлечено из списка связности.
Необходимо вывести ребро, которое можно удалить без потери информации.
Пример:
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: дается ненправленный граф, не имеющий циклов.
Узлы графа соединены между собой и отражаются списком соединения
edges[i] = [ai, bi]. В графе имеется избытоное ребро, которое может быть безболезнено извлечено из списка связности.
Необходимо вывести ребро, которое можно удалить без потери информации.
Пример:
Ввод:
edges = [[1,2],[1,3],[2,3]]Вывод:
[2,3]Решение задачи
👍1