Публикации по теме 'leetcode'
Опыт интервью в качестве старшего разработчика: мартовский выпуск
Опыт интервью в качестве старшего разработчика: мартовский выпуск
Неожиданные интервью и результаты от Senior Software Engineer → Tech Lead Positions.
В этом месяце я дал 2 интервью и поделюсь с ними своим опытом.
Одно из них было неожиданным, поскольку компании до сих пор задают Leedcode сложные вопросы на собеседованиях.
В целях конфиденциальности я не буду называть компании. Но для удобства это компании А и Б.
Первое собеседование (задание по низкоуровневому дизайну)..
LeetCode : #21 Поиск Вставить позицию [Просто]
Постановка задачи :
Позиция вставки поиска — LeetCode По заданному отсортированному массиву и целевому значению вернуть индекс, если целевое значение найдено. Если нет, верните индекс, где он… leetcode.com
Решение:
Динамическое программирование: бесплатные ресурсы от А до Я | Часть 1
Динамическое программирование — это алгоритмический метод, который решает сложную проблему, разбивая ее на более простые подзадачи и сохраняя результаты каждой подзадачи для решения общей ситуации. Он используется в основном для задач оптимизации, целью которых является поиск наилучшего решения.
В этой статье я поделюсь некоторыми замечательными ресурсами, которые помогут вам изучать и практиковать задачи DP из бесплатных ресурсов.
Все задачи динамического программирования (DP) на..
Leetcode 1026. Максимальная разница между узлом и предком — Python.
Классическая задача дерева с использованием рекурсии.
В чем проблема?
Нам дан корень бинарного дерева, и задача состоит в том, чтобы найти максимальное значение 'v' такое, что 'v' равно абсолютной разнице между двумя узлами 'a' и 'b', где 'a' является предком из «б».
Проще говоря, узел-предок «а» может быть родителем, прародителем, прапрадедушкой и т. д. узла «b» — предок — это любой узел, который находится между корнем и этим узлом, например:..
День 44: Действительные скобки
LeetCode 20. Допустимые скобки
class Solution {
public:
bool isValid(string s) {
stack <char> stck;
for (char c: s) {
if (c == '(' || c == '[' || c == '{') {
stck.push(c);
}
else {
if (stck.empty()) return false;
if (c == ')' && stck.top() != '(') return false;
if (c == ']' && stck.top() != '[') return false;
if (c == '}'..
Две суммы
Давайте решим простую, но популярную задачу LeetCode «Две суммы» наиболее эффективным способом.
Постановка задачи
Решение
Грубое решение проблемы состоит в том, чтобы проверить каждую пару, запустив два цикла. Сложность решения грубой силы довольно проста:
Временная сложность = O(n²) и пространственная сложность = O(1)
Конечно, мы читаем эту статью не для того, чтобы обсуждать решение методом грубой силы. Попробуем решить постановку задачи эффективным способом.
Идея..
Конкурс Leetcode раз в две недели 341 интересная задача
Рассмотрим третью задачу из двухнедельного конкурса Leetcode 341 . Решения различных задач из других конкурсов вы можете найти здесь .
Минимальные дополнения для создания действительной строки
Учитывая строку word , в которую можно вставлять буквы "a", "b" или "c" в любом месте и любое количество раз, вернуть минимальное количество букв, которое необходимо вставить, чтобы word стало действительным .
Строка называется действительной , если она может быть образована..