JavaScript | LeetCode
Ir al canal en Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Mostrar más8 510
Suscriptores
-324 horas
-247 días
-10130 días
Carga de datos en curso...
Canales Similares
Nube de Etiquetas
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
agosto '26
agosto '26
+19
en 0 canales
julio '26
+27
en 0 canales
Get PRO
junio '26
+45
en 2 canales
Get PRO
mayo '26
+32
en 0 canales
Get PRO
abril '26
+47
en 0 canales
Get PRO
marzo '26
+26
en 0 canales
Get PRO
febrero '26
+38
en 0 canales
Get PRO
enero '26
+48
en 0 canales
Get PRO
diciembre '25
+39
en 1 canales
Get PRO
noviembre '25
+161
en 0 canales
Get PRO
octubre '25
+173
en 0 canales
Get PRO
septiembre '25
+129
en 0 canales
Get PRO
agosto '25
+165
en 0 canales
Get PRO
julio '25
+175
en 1 canales
Get PRO
junio '25
+173
en 2 canales
Get PRO
mayo '25
+204
en 2 canales
Get PRO
abril '25
+356
en 0 canales
Get PRO
marzo '25
+320
en 5 canales
Get PRO
febrero '25
+439
en 5 canales
Get PRO
enero '25
+534
en 53 canales
Get PRO
diciembre '24
+232
en 0 canales
Get PRO
noviembre '24
+292
en 0 canales
Get PRO
octubre '24
+681
en 17 canales
Get PRO
septiembre '24
+2 356
en 332 canales
Get PRO
agosto '24
+464
en 0 canales
Get PRO
julio '24
+2 250
en 219 canales
Get PRO
junio '24
+3 130
en 234 canales
| Fecha | Crecimiento de Suscriptores | Menciones | Canales | |
| 26 agosto | 0 | |||
| 25 agosto | 0 | |||
| 24 agosto | +1 | |||
| 23 agosto | 0 | |||
| 22 agosto | 0 | |||
| 21 agosto | +2 | |||
| 20 agosto | 0 | |||
| 19 agosto | +1 | |||
| 18 agosto | +2 | |||
| 17 agosto | 0 | |||
| 16 agosto | 0 | |||
| 15 agosto | +1 | |||
| 14 agosto | 0 | |||
| 13 agosto | +1 | |||
| 12 agosto | +2 | |||
| 11 agosto | +3 | |||
| 10 agosto | +1 | |||
| 09 agosto | +1 | |||
| 08 agosto | +1 | |||
| 07 agosto | 0 | |||
| 06 agosto | 0 | |||
| 05 agosto | 0 | |||
| 04 agosto | 0 | |||
| 03 agosto | 0 | |||
| 02 agosto | +2 | |||
| 01 agosto | +1 |
Publicaciones del Canal
Задача: 652. Find Duplicate Subtrees
Сложность: medium
Если задан корень бинарного дерева, верните все дублирующие поддеревья. Для каждого вида дублирующих поддеревьев достаточно вернуть корневой узел любого из них. Два дерева являются дублирующими, если они имеют одинаковую структуру с одинаковыми значениями узлов.
Пример:
Input: root = [1,2,3,4,null,2,4,null,null,4] Output: [[2,4],[4]]👨💻 Алгоритм: 1⃣Выполните обход дерева и используйте сериализацию для представления каждого поддерева. 2⃣Храните все сериализованные представления поддеревьев в хэш-таблице и отслеживайте частоту их появления. 3⃣Найдите поддеревья, которые появляются более одного раза, и верните корневые узлы этих поддеревьев. 😎 Решение:
function TreeNode(val, left, right) {
this.val = (val===undefined ? 0 : val)
this.left = (left===undefined ? null : left)
this.right = (right===undefined ? null : right)
}
var findDuplicateSubtrees = function(root) {
const count = new Map();
const result = [];
const serialize = (node) => {
if (!node) return "#";
const serial = `${node.val},${serialize(node.left)},${serialize(node.right)}`;
count.set(serial, (count.get(serial) || 0) + 1);
if (count.get(serial) === 2) {
result.push(node);
}
return serial;
};
serialize(root);
return result;
};
Ставь 👍 и забирай 📚 Базу знаний| 2 | Shedeux — бельё, созданное для вашего комфорта
Мы сами производим женское нижнее бельё и создаём модели, которые хочется выбирать каждый день: комфортная посадка, базовый дизайн и приятные материалы.
Бесшовное и хлопковое бельё, бра, топы и трусы — напрямую от бренда Shedeux.
2+1 = −20% при покупке от 3 вещей.
✅ Собственное производство
✅ Цены ниже, чем на WB
✅ Можно оплатить в Яндекс Сплит
✅ Доставим по всей России в ПВЗ
Смотреть коллекцию ⚡
Перейти на сайт
#реклама
shedeuxstore.ru
О рекламодателе | 283 |
| 3 | Пожизненный PRO доступ на easyoffer — по цене одного года!
До 2 сентября вы можете купить PRO навсегда.
Покупаешь один раз — пользуешься всю жизнь.
– База вопросов и задач из собеседований
– Примеры видео-ответов на вопросы
– Записи реальных собеседований
– Тренажеры "Проработка вопросов" и "Реальное собеседование"
– Аналитика требований из вакансий
– Автоотклики на вакансии
– Агрегатор вакансий (скоро)
👉 Купить PRO со скидкой 70%: https://easyoffer.ru/pro | 310 |
| 4 | Из разработчика в тимлиды: как говорить с людьми
Стать тимлидом — значит научиться говорить с людьми о сложном. Но как сказать разработчику, что код — "не очень", не обидев?
📅 16 сентября в 20:00 Александр Пряхин разберет техники обратной связи без эскалации. Узнаете, как формулировать по фактам, снижать защитную реакцию и завершать разговор договоренностями. Для разработчиков, готовящихся к лидерству.
Узнать больше
#реклама 16+
otus.ru
О рекламодателе | 407 |
| 5 | Задача: 525. Contiguous Array
Сложность: medium
Дан бинарный массив nums. Верните максимальную длину непрерывного подмассива с равным количеством 0 и 1.
Пример:
Input: nums = [0,1]
Output: 2
Explanation: [0, 1] is the longest contiguous subarray with an equal number of 0 and 1.
👨💻 Алгоритм:
1⃣Инициализируйте переменную count для отслеживания разности между количеством 1 и 0, и переменную max_length для хранения максимальной длины подмассива. Создайте хеш-таблицу map для хранения первых встреч каждого значения count. Добавьте начальное значение (0, -1) в хеш-таблицу.
2⃣Итеративно пройдите по массиву nums. На каждой итерации обновляйте значение count (увеличивайте на 1 для 1 и уменьшайте на 1 для 0). Если текущее значение count уже существует в хеш-таблице, вычислите длину подмассива между текущим индексом и индексом из хеш-таблицы. Обновите max_length, если текущий подмассив длиннее.
3⃣Если текущее значение count не существует в хеш-таблице, добавьте его с текущим индексом. После завершения итерации верните max_length.
😎 Решение:
var findMaxLength = function(nums) {
let countMap = new Map();
countMap.set(0, -1);
let maxLength = 0;
let count = 0;
for (let i = 0; i < nums.length; i++) {
count += (nums[i] === 1 ? 1 : -1);
if (countMap.has(count)) {
maxLength = Math.max(maxLength, i - countMap.get(count));
} else {
countMap.set(count, i);
}
}
return maxLength;
};
Ставь 👍 и забирай 📚 Базу знаний | 393 |
| 6 | Откройте для себя Абу-Даби
Абу-Даби оживает в самом сердце Москвы: пятидневное культурное путешествие: иммерсивные технологии, живая эмиратская музыка, традиционные ремёсла и наследие.
Манежная площадь, 19-23 августа.
Узнать больше
#реклама 16+
visitabudhabi.ae
О рекламодателе | 341 |
| 7 | Скидка 25% на гели Ariel и Tide!
Скидка 25% в Любимой категории на товары брендов Ariel и Tide
Купить
#реклама
market.yandex.ru
О рекламодателе | 251 |
| 8 | Задача: 1006. Clumsy Factorial
Сложность: medium
Факториал целого положительного числа n - это произведение всех целых положительных чисел, меньших или равных n. Например, факториал(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1.
Мы составляем неуклюжий факториал, используя целые числа в порядке убывания, заменяя операции умножения на фиксированную последовательность операций с умножением "*", делением "/", сложением "+" и вычитанием "-" в этом порядке. Например, clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1. Однако эти операции по-прежнему применяются с использованием обычного порядка операций арифметики. Мы выполняем все шаги умножения и деления перед шагами сложения и вычитания, а шаги умножения и деления выполняются слева направо. Кроме того, деление, которое мы используем, является делением с полом, так что 10 * 9 / 8 = 90 / 8 = 11. Учитывая целое число n, верните неуклюжий факториал n.
Пример:
Input: nums = [4,2,3], k = 1
Output: 5
👨💻 Алгоритм:
1⃣Инициализация переменных и обработка первых трех чисел:
Создайте переменные для хранения результата и текущего значения.
Если n меньше или равен 3, обработайте случай отдельно, выполняя операции в порядке убывания, и верните результат.
2⃣Выполнение операций в цикле:
Создайте цикл, который будет обрабатывать числа от n до 1 в порядке убывания.
В цикле выполняйте операции *, /, +, и - последовательно.
Обновляйте текущий результат на каждом шаге в зависимости от остатка от деления текущего индекса на 4.
3⃣Учет оставшихся операций и возврат результата:
После завершения цикла добавьте или вычтите оставшиеся числа (если есть) к результату.
Верните окончательный результат.
😎 Решение:
class Solution {
clumsy(n) {
if (n == 0) return 0;
if (n == 1) return 1;
if (n == 2) return 2 * 1;
if (n == 3) return 3 * 2 / 1;
let res = n * (n - 1) / (n - 2);
n -= 3;
if (n > 0) res += n--;
while (n > 0) {
res -= n * (n - 1) / (n - 2);
n -= 3;
if (n > 0) res += n--;
}
return res;
}
}
Ставь 👍 и забирай 📚 Базу знаний | 517 |
| 9 | Услуги коммерческого дата-центра в Москве
Размещение серверного оборудования в дата-центре.
✅ Услуги предоставляются в 4 дата-центрах в Москве.
✅ Географическое резервирование.
✅ Высокая отказоустойчивость.
✅ Гибкость при выборе площадки для размещения оборудования.
Узнать цену
#реклама
itsoft.ru
О рекламодателе | 338 |
| 10 | Как Фронтенд-разработчику получить оффер в бигтех в 2026
Узнаешь, какие вопросы задают на собеседованиях
Поймёшь, какие темы по JavaScript и React нужно знать особенно хорошо
Увидишь, как рассуждают сильные кандидаты при решении задач
Получишь понимание того, чего ожидают интервьюеры от Middle и Senior специалистов
Участие — бесплатно.
Зарегистрироваться
#реклама 16+
web.shortcut.education
О рекламодателе | 392 |
| 11 | Задача: 305. Number of Islands II
Сложность: hard
Дан пустой двумерный бинарный массив grid размером m x n. Этот массив представляет собой карту, где 0 означает воду, а 1 — сушу. Изначально все ячейки массива — водные (т.е. все ячейки содержат 0).
Вы можете выполнить операцию "добавить землю", которая превращает воду в указанной позиции в сушу. Вам дан массив positions, где positions[i] = [ri, ci] — позиция (ri, ci), в которой следует выполнить i-ю операцию.
Верните массив целых чисел answer, где answer[i] — количество островов после превращения ячейки (ri, ci) в сушу.
Остров окружен водой и образуется путем соединения соседних земель по горизонтали или вертикали. Вы можете считать, что все четыре края сетки окружены водой.
Пример:
Input: m = 1, n = 1, positions = [[0,0]]
Output: [1]
👨💻 Алгоритм:
1⃣Инициализация:
Создайте массивы x[] = { -1, 1, 0, 0 } и y[] = { 0, 0, -1, 1 }, которые будут использоваться для нахождения соседей ячейки.
Создайте экземпляр UnionFind, например, dsu(m * n). Инициализируйте всех родителей значением -1. Используйте объединение по рангу, инициализируйте все ранги значением 0. Наконец, инициализируйте count = 0.
Создайте список целых чисел answer, где answer[i] будет хранить количество островов, образованных после превращения ячейки positions[i] в сушу.
2⃣Обработка позиций:
Итерация по массиву positions. Для каждой позиции в positions:
Выполните линейное отображение, чтобы преобразовать двумерную позицию ячейки в landPosition = position[0] * n + position[1].
Используйте операцию addLand(landPosition), чтобы добавить landPosition как узел в граф. Эта функция также увеличит count.
Итерация по каждому соседу позиции. Соседа можно определить с помощью neighborX = position[0] + x[i] и neighborY = position[1] + y[i], где neighborX — координата X, а neighborY — координата Y соседней ячейки. Выполните линейное отображение соседней ячейки с помощью neighborPosition = neighborX * n + neighborY. Теперь, если на neighborPosition есть суша, т.е. isLand(neighborPosition) возвращает true, выполните объединение neighborPosition и landPosition. В объединении уменьшите count на 1.
3⃣Определение количества островов:
Выполните операцию numberOfIslands, которая возвращает количество островов, образованных после превращения позиции в сушу. Добавьте это значение в answer.
Верните answer.
😎 Решение
class UnionFind {
constructor(size) { this.parent = Array(size).fill(-1); this.rank = Array(size).fill(0); this.count = 0 }
addLand(x) { if (this.parent[x] < 0) { this.parent[x] = x; this.count++ } }
isLand(x) { return this.parent[x] >= 0 }
find(x) { if (this.parent[x] !== x) this.parent[x] = this.find(this.parent[x]); return this.parent[x] }
unionSet(x, y) { let xset = this.find(x), yset = this.find(y)
if (xset !== yset) { if (this.rank[xset] < this.rank[yset]) this.parent[xset] = yset
else { this.parent[yset] = xset; if (this.rank[xset] === this.rank[yset]) this.rank[xset]++ }; this.count-- } }
}
var numIslands2 = function(m, n, positions) {
let dsu = new UnionFind(m * n), dirs = [[-1, 0], [1, 0], [0, -1], [0, 1]], answer = []
for (let pos of positions) { let land = pos[0] * n + pos[1]; dsu.addLand(land)
for (let [dx, dy] of dirs) { let nx = pos[0] + dx, ny = pos[1] + dy, neighbor = nx * n + ny
if (nx >= 0 && nx < m && ny >= 0 && ny < n && dsu.isLand(neighbor)) dsu.unionSet(land, neighbor) }
answer.push(dsu.count) }
return answer
}
Ставь 👍 и забирай 📚 Базу знаний | 568 |
| 12 | В нашем канале много ценного для разработчиков по подготовке к собесам👇
Уже 2 года мы развиваем комьюнити, где 10000+ разработчиков, и вместе мы тренируем собеседования и выжимаем из рынка максимум!
Полные разборы собеседований: Сбер, VK, OZON, M-Video, Evrone, еще раз OZON, IT One, Trading View, МТС, Лантан, ДОМ.РФ
Стримы с гостями и записями:
Как проходить собеседование на английском
Как решать livecoding задачи
Прокачали более 30 резюме вместе с Юрой
Сборники вопросов по темам:
Кибербезопасность на собеседовании
Все вопросы по React на собеседовании
Все вопросы по TypeScript на собеседовании
Как решать задачи двумя указателями
Вопросы с Vue собеседований
Вопросы по сетям и методологиям с 200 собесов
Вопросы по JS с 200 собесов
Какие задачи спрашивают на livecoding чаще
Полезные посты:
Job-борды для поиска работы
Запись нашего самого кринжового собеса
Новый HTTP метод QUERY
Статистика по рынку:
Июль, Июнь, Май, Апрель, Март
Текущие рекорды участников:
Оффер 6800$ net с релокацией на Кипр
Из Шанхая до 4500$ в американскую компанию
Получили 427 000 на руки в Сбер и отказались
Выбили 380 000 на руки в банк и приняли!
Наши встречи в Питере, Москве, Шанхае
Как я прохожу собесы на ютубе:
Оффер 260к на Go в Empoycity
Оффер 300к на Go в "Системная интеграция"
Отжал 390 gross + 25% премии в Иннотех
Оффер на лида 415 gross + 20% премии в ПСБ
А еще каждый четверг у нас проходят полезные стримы с решениями задач и разборами резюме)
Подписывайся 👇
https://t.me/frontend_punks
Реклама, erid: 2W5zFGKJcXb ИП Галактионов Тихон Витальевич, ИНН 771618975809 | 390 |
| 13 | Метрики Delivery Manager: что измерять, а что — нет
Большое количество показателей не делает поставку более управляемой. Команда может регулярно заполнять отчёты, отслеживать скорость и обновлять дашборды, но всё равно с опозданием узнавать о проблемах со сроками, качеством и нагрузкой. Метрика полезна только тогда, когда помогает увидеть риск, принять решение или изменить процесс, а не просто создаёт ощущение контроля.
На открытом уроке 19 августа в 20:00 в OTUS разберём, какие показатели отражают реальное состояние поставки и помогают Delivery Manager управлять сроками, качеством и предсказуемостью работы. Поговорим о том, как выбирать метрики для команды и проекта, не перегружая процессы лишней отчётностью.
Узнать больше
#реклама 16+
otus.ru
О рекламодателе | 300 |
| 14 | Задача: 541. Reverse String II
Сложность: easy
Дана строка s и целое число k, переверните первые k символов для каждых 2k символов, начиная с начала строки.
Если осталось меньше k символов, переверните все. Если осталось меньше 2k, но больше или равно k символов, переверните первые k символов и оставьте остальные как есть.
Пример:
Input: s = "abcdefg", k = 2
Output: "bacdfeg"
👨💻 Алгоритм:
1⃣Разворачиваем каждый блок из 2k символов непосредственно. Каждый блок начинается с кратного 2k: например, 0, 2k, 4k, 6k и так далее.
2⃣Будьте внимательны, если символов недостаточно, блок может не быть перевернут.
3⃣Для разворота блока символов с позиции i до j, меняем местами символы на позициях i++ и j--.
😎 Решение:
class Solution {
reverseStr(s, k) {
let a = s.split('');
for (let start = 0; start < a.length; start += 2 * k) {
let i = start, j = Math.min(start + k - 1, a.length - 1);
while (i < j) {
[a[i], a[j]] = [a[j], a[i]];
i++;
j--;
}
}
return a.join('');
}
}
Ставь 👍 и забирай 📚 Базу знаний | 440 |
| 15 | Научись делать инфографику для маркетплейсов. Курс 0 р.
Онлайн-программа с наставником и чатом.
Внимание! 80% практики.
✅По результату обучения у вас будет портфолио из нескольких работ.
✅Сертификат о прохождении курса.
✅Возможность пройти полное обучение и получить карьерное сопровождение!
Учитесь дизайну у профессионалов в Yudaev Shool.
Переходи по кнопки: "Подробнее" и начинай свое обучение.
Доступ 0 руб.
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе | 313 |
| 16 | Переходи в скоростной режим карьеры
⚡Учись у тех, кто прошел путь от джуна до топа. В Мини-СЕО ты попадешь в команду топ-менеджера Т-Банка и сможешь:
— исследовать экосистемы и находить наиболее перспективные точки роста;
— развивать сегмент автолюбителей в Т-Банке;
— заниматься региональной экспансией банка;
— вести стратегический план развития 3P, развивать AI-продукты;
— участвовать в создании B2B-маркетплейса;
— разрабатывать эффективные методологии.
Программа длится шесть месяцев и подойдет студентам и выпускникам, которые уже умеют в математику и аналитику.
Подай заявку до 25 сентября!
Зарегистрироваться
#реклама 16+
t-miniceo.ru
О рекламодателе | 301 |
| 17 | Задача: 442. Find All Duplicates in an Array
Сложность: medium
Дан целочисленный массив nums длины n, где все целые числа nums находятся в диапазоне [1, n], и каждое число появляется один или два раза. Верните массив всех чисел, которые появляются дважды.
Вы должны написать алгоритм, который работает за время O(n) и использует только постоянное дополнительное пространство.
Пример:
Input: nums = [4,3,2,7,8,2,3,1]
Output: [2,3]
👨💻 Алгоритм:
1⃣Когда мы итерируемся по элементам входного массива, мы можем просто искать любое другое вхождение текущего элемента в оставшейся части массива.
2⃣Поскольку элемент может появляться только один или два раза, нам не нужно беспокоиться о получении дубликатов элементов, которые появляются дважды: Случай I: Если элемент встречается в массиве только один раз, при поиске его в остальной части массива ничего не найдется. Случай II: Если элемент встречается дважды, вы найдете второе вхождение элемента в оставшейся части массива. Когда вы наткнетесь на второе вхождение в более поздней итерации, это будет аналогично случаю I (поскольку больше вхождений этого элемента в оставшейся части массива не будет).
3⃣Таким образом, можно эффективно определить все элементы, которые встречаются дважды, и добавить их в результирующий массив, проходя по каждому элементу массива и проверяя наличие его второго вхождения в оставшейся части массива.
😎 Решение:
var findDuplicates = function(nums) {
let ans = [];
for (let i = 0; i < nums.length; i++) {
for (let j = i + 1; j < nums.length; j++) {
if (nums[j] === nums[i]) {
ans.push(nums[i]);
break;
}
}
}
return ans;
};
Ставь 👍 и забирай 📚 Базу знаний | 679 |
| 18 | Хотите внедрить ИИ, но не знаете с чего начать?
ГигаАкадемия запустила ИИ-менторинг — индивидуальную сессию с практикующим экспертом для собственников и бенефициаров.
Никакой теории. Только вы, эксперт и ваша задача.
Три часа фокуса на вашем запросе.
Ментор разбирает процессы, данные и ограничения и помогает определить, где ИИ быстрее всего даст бизнес-эффект и повлияет на рост выручки.
Вы уходите не с вдохновением, а с планом:
— карта вашего ИИ-кейса: задача, эффект, риски
— 3 приоритетных сценария — где ценность выше, а запуск проще
— дорожная карта пилота на 2–6 недель
Цель ментора — усилить вашу экспертизу: научить самостоятельно находить, оценивать и запускать ИИ-решения.
ИИ уже готов работать на вас. А вы готовы взять его в партнёры?
Оставьте заявку на сайте и получите консультацию.
Узнать больше
Номер реестровой записи: С502024004938.
#реклама 16+
sberuniversity.ru
О рекламодателе | 321 |
| 19 | 🔴 Тестовое собеседование на Frontend-разработчика со старшим разработчиком ex. Сбер
13 августа(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика.
Как это будет:
📂 Даниил Дмитриев, старший разработчик в R-Vision, ex. Сбер, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даниил будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Даниилу
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_front_bot
Реклама.
О рекламодателе. | 342 |
| 20 | Получи грант до 1,35 млн руб. на обучение в магистратуре
Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой?
Поступай в магистратуру Центрального университета!
— 4 офлайн программы по востребованным направлениям ИТ
— 2 онлайн-программы: машинное обучение и продуктовый менеджмент
— 550 грантов до 75%
— Вечерние занятия и учеба по выходным — удобно совмещать с работой
— Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса
— Возможность стажировок и трудоустройства в ведущих компаниях
— Государственный диплом за 2 года
Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии. Оставляй заявку на грант уже сейчас!
Зарегистрироваться
#реклама 16+
cu.ru
О рекламодателе | 388 |
