ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

JavaScript | LeetCode

JavaScript | LeetCode

Открыть в Telegram
8 263
Подписчики
-424 часа
-287 дней
-12730 дней
Привлечение подписчиков
окт. '26
октябрь '26
+13
в 0 каналах
сентябрь '26
+31
в 0 каналах
Get PRO
август '26
+22
в 0 каналах
Get PRO
июль '26
+27
в 0 каналах
Get PRO
июнь '26
+45
в 2 каналах
Get PRO
май '26
+32
в 0 каналах
Get PRO
апрель '26
+47
в 0 каналах
Get PRO
март '26
+26
в 0 каналах
Get PRO
февраль '26
+38
в 0 каналах
Get PRO
январь '26
+48
в 0 каналах
Get PRO
декабрь '25
+39
в 1 каналах
Get PRO
ноябрь '25
+161
в 0 каналах
Get PRO
октябрь '25
+173
в 0 каналах
Get PRO
сентябрь '25
+129
в 0 каналах
Get PRO
август '25
+165
в 0 каналах
Get PRO
июль '25
+175
в 1 каналах
Get PRO
июнь '25
+173
в 2 каналах
Get PRO
май '25
+204
в 2 каналах
Get PRO
апрель '25
+356
в 0 каналах
Get PRO
март '25
+320
в 5 каналах
Get PRO
февраль '25
+439
в 5 каналах
Get PRO
январь '25
+534
в 53 каналах
Get PRO
декабрь '24
+232
в 0 каналах
Get PRO
ноябрь '24
+292
в 0 каналах
Get PRO
октябрь '24
+681
в 17 каналах
Get PRO
сентябрь '24
+2 356
в 332 каналах
Get PRO
август '24
+464
в 0 каналах
Get PRO
июль '24
+2 250
в 219 каналах
Get PRO
июнь '24
+3 130
в 234 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
26 октября0
25 октября0
24 октября0
23 октября0
22 октября0
21 октября+2
20 октября0
19 октября+1
18 октября+1
17 октября+2
16 октября+1
15 октября0
14 октября+1
13 октября+1
12 октября+1
11 октября0
10 октября0
09 октября0
08 октября+1
07 октября0
06 октября0
05 октября0
04 октября0
03 октября+2
02 октября0
01 октября0
Посты канала
Сложность: medium Задача: 556. Next Greater Element III Мы можем перемешать строку s, чтобы получить строку t, используя следующий алгоритм: Дано положительное целое число n. Найдите наименьшее целое число, которое имеет точно такие же цифры, как и число n, и больше самого числа n по значению. Если такого положительного целого числа не существует, верните -1. Учтите, что возвращенное число должно помещаться в 32-битное целое число. Если существует допустимый ответ, но он не помещается в 32-битное целое число, верните -1. Пример:
Input: n = 12
Output: 21
👨‍💻 Алгоритм: 1⃣Нахождение и перестановка цифр Преобразуйте число n в массив цифр. Найдите первую цифру, которая нарушает убывающий порядок (с конца массива). Назовем её индексом i. Найдите первую цифру, которая больше digits[i-1] (с конца массива). Назовем её индексом j. Поменяйте местами цифры на позициях i-1 и j. 2⃣Обратный порядок оставшихся цифр Обратный порядок части массива от индекса i до конца, чтобы получить наименьшую перестановку, которая больше исходной. 3⃣Проверка результата и преобразование обратно в число Преобразуйте массив цифр обратно в число. Если число превышает 32-битный предел, верните -1. В противном случае верните полученное число. 😎 Решение:
class Solution {
    swap(s, i0, i1) {
        if (i0 === i1) return s;
        let chars = s.split('');
        [chars[i0], chars[i1]] = [chars[i1], chars[i0]];
        return chars.join('');
    }

    constructor() {
        this.list = [];
    }

    permute(a, l, r) {
        if (l === r) {
            this.list.push(a);
        } else {
            for (let i = l; i <= r; i++) {
                a = this.swap(a, l, i);
                this.permute(a, l + 1, r);
                a = this.swap(a, l, i);
            }
        }
    }

    nextGreaterElement(n) {
        let s = '' + n;
        this.permute(s, 0, s.length - 1);
        this.list.sort();
        let index = this.list.indexOf(s);
        if (index !== -1 && index < this.list.length - 1) {
            let result = parseInt(this.list[index + 1]);
            if (result <= 2147483647) {
                return result;
            }
        }
        return -1;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

2
Хотите разобраться, как создаются Telegram-боты? Telegram-бот кажется простым для пользователя, но как он получает сообщение
Хотите разобраться, как создаются Telegram-боты? Telegram-бот кажется простым для пользователя, но как он получает сообщение и решает, что ответить? На открытом уроке разберём этот процесс на практике. Преподаватель в режиме лайвкодинга создаст бота на Python с библиотекой aiogram — от первого запуска до рабочего диалога с кнопками. Вы узнаете, как получить токен, обрабатывать команды и сообщения, добавлять кнопки и ответы на действия пользователя. В конце проверите работу готового бота прямо в Telegram. Урок подойдёт начинающим Python-разработчикам. 10 ноября в 20:00 МСК. Зарегистрироваться #реклама 16+ otus.ru О рекламодателе
273
3
Braun — технологии для безупречного ухода ✨Оригинальные бритвы, триммеры и эпиляторы ✨ Точность, комфорт и стиль — вместе с B
Braun — технологии для безупречного ухода ✨Оригинальные бритвы, триммеры и эпиляторы ✨ Точность, комфорт и стиль — вместе с Braun Купить #реклама market.yandex.ru О рекламодателе
268
4
Подвеска с алмазом ограненным синтетическим Подвеска из коллекции Соло Премиум,Свадебное украшение. Для нее Узнать больше #ре
Подвеска с алмазом ограненным синтетическим Подвеска из коллекции Соло Премиум,Свадебное украшение. Для нее Узнать больше #реклама miuz.ru О рекламодателе
317
5
🔥 Скрытые вакансии с удаленной работой для Frontend разработчика, которые нигде больше не публикуются. Напрямую от компаний,
🔥 Скрытые вакансии с удаленной работой для Frontend разработчика, которые нигде больше не публикуются. Напрямую от компаний, с контактами рекрутеров. 🔹 Frontend Jobs | Вакансии 🔹 Node.js Jobs | Вакансии 🔸 Все каналы с вакансиями
602
6
Обмен любых грузовых автомобилей на новый KAMAZ 54901 Трейд ин на KAMAZ 54901. Выкуп грузовика на рыночных условиях. Оценка в
Обмен любых грузовых автомобилей на новый KAMAZ 54901 Трейд ин на KAMAZ 54901. Выкуп грузовика на рыночных условиях. Оценка в течение дня Узнать больше #реклама k5.kamaz.ru О рекламодателе
298
7
Сложность: medium Задача: 275. H-Index II Дан массив целых чисел citations, где citations[i] — количество цитирований, которое исследователь получил за свою i-ю статью, и массив отсортирован в порядке возрастания. Верните h-индекс исследователя. Согласно определению h-индекса на Википедии: h-индекс определяется как максимальное значение h, такое что данный исследователь опубликовал по крайней мере h статей, каждая из которых была процитирована как минимум h раз. Вы должны написать алгоритм, который работает за логарифмическое время. Пример: Input: citations = [0,1,3,5,6] Output: 3 Explanation: [0,1,3,5,6] means the researcher has 5 papers in total and each of them had received 0, 1, 3, 5, 6 citations respectively. Since the researcher has 3 papers with at least 3 citations each and the remaining two with no more than 3 citations each, their h-index is 3. 👨‍💻 Алгоритм: 1️⃣Найти середину массива: Определить средний элемент массива, чтобы разделить его на две подмножества: citations[0: mid - 1] и citations[mid + 1: n]. 2️⃣Сравнить количество статей с цитированиями больше или равными citations[mid]: Если citations[mid] == n - mid, то найден h-индекс и его можно вернуть. Если citations[mid] < n - mid, то необходимо искать в правой подмножности citations[mid + 1: n]. Если citations[mid] > n - mid, то необходимо искать в левой подмножности citations[0: mid - 1]. 3️⃣Возвращение результата: Продолжать процесс, пока не будет найден h-индекс. Возвратить n - mid, что является количеством статей с цитированиями больше или равными citations[mid]. 😎 Решение: var hIndex = function(citations) { let n = citations.length; let left = 0, right = n - 1; while (left <= right) { let mid = left + Math.floor((right - left) / 2); if (citations[mid] === n - mid) { return n - mid; } else if (citations[mid] < n - mid) { left = mid + 1; } else { right = mid - 1; } } return n - left; }; Ставь 👍 и забирай 📚 Базу знаний
682
8
Solar JSOC - Флагманский SOC с гарантией Гарантии крупнейшего коммерческого SOCа России теперь доступны вам. Узнать больше #р
Solar JSOC - Флагманский SOC с гарантией Гарантии крупнейшего коммерческого SOCа России теперь доступны вам. Узнать больше #реклама 16+ rt-solar.ru О рекламодателе
280
9
Задача: 687. Longest Univalue Path Сложность: medium Дано корень бинарного дерева, верните длину самого длинного пути, на котором все узлы имеют одинаковое значение. Этот путь может проходить через корень или не проходить. Длина пути между двумя узлами представлена количеством рёбер между ними. Пример: Input: root = [5,4,5,1,1,null,5] Output: 2 Explanation: The shown image shows that the longest path of the same value (i.e. 5). 👨‍💻 Алгоритм: 1⃣Определить рекурсивную функцию solve(), принимающую текущий узел root и значение родительского узла parent. Если root равен NULL, вернуть 0. Рекурсивно вызвать solve() для левого и правого дочернего узлов, передав значение текущего узла как значение родительского узла. 2⃣Обновить переменную ans, если сумма значений для левого и правого узлов больше текущего значения ans. Если значение текущего узла равно значению родительского узла, вернуть max(left, right) + 1, иначе вернуть 0. 3⃣Вызвать solve() с корневым узлом и значением родительского узла -1. Вернуть максимальную длину пути ans.. 😎 Решение: class Solution { constructor() { this.ans = 0; } solve(root, parent) { if (!root) return 0; const left = this.solve(root.left, root.val); const right = this.solve(root.right, root.val); this.ans = Math.max(this.ans, left + right); return root.val === parent ? Math.max(left, right) + 1 : 0; } longestUnivaluePath(root) { this.solve(root, -1); return this.ans; } } Ставь 👍 и забирай 📚 Базу знаний
616
10
Бесплатный курс по дизайну в FIGMA от Yudaev School Онлайн-программа с наставником и чатом. Внимание! 80% практики. ✅По резул
Бесплатный курс по дизайну в FIGMA от Yudaev School Онлайн-программа с наставником и чатом. Внимание! 80% практики. ✅По результату обучения у вас будет портфолио из нескольких работ. ✅Сертификат о прохождении курса. ✅Возможность пройти полное обучение и получить карьерное сопровождение! Учитесь дизайну у профессионалов в Yudaev Shool. Переходи по кнопки: "Подробнее" и начинай свое обучение. Доступ 0 руб. Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе
293
11
Задача: 651. 4 Keys Keyboard Сложность: medium Представьте, что у вас есть специальная клавиатура со следующими клавишами: A: Напечатать одну букву "A" на экране. Ctrl-A: Выделить весь экран. Ctrl-C: Скопировать выделение в буфер. Ctrl-V: Печать буфера на экране с добавлением его после того, что уже было напечатано. Учитывая целое число n, верните максимальное количество букв 'A', которые можно напечатать на экране при нажатии не более n клавиш. Пример: Input: root = [1,2,3,4,null,2,4,null,null,4] Output: [[2,4],[4]] 👨‍💻 Алгоритм: 1⃣Используйте динамическое программирование для отслеживания максимального количества букв 'A' на экране после каждого числа нажатий клавиш. 2⃣Итерируйтесь от 1 до n, вычисляя максимальное количество 'A' для каждой позиции, учитывая возможность вставки скопированного текста. 3⃣Возвращайте значение из таблицы динамического программирования для n нажатий клавиш. 😎 Решение: var maxA = function(n) { let dp = new Array(n + 1).fill(0); for (let i = 1; i <= n; i++) { dp[i] = dp[i - 1] + 1; for (let j = 2; j < i; j++) { dp[i] = Math.max(dp[i], dp[j - 2] * (i - j + 1)); } } return dp[n]; }; Ставь 👍 и забирай 📚 Базу знаний
465
12
Идеальный Подарок в VINDEMIA Ищите подарок? Магазин винтажной посуды VINDEMIA всё придумал за Вас. Винтажный фарфор из Европы
Идеальный Подарок в VINDEMIA Ищите подарок? Магазин винтажной посуды VINDEMIA всё придумал за Вас. Винтажный фарфор из Европы в фирменной упаковке с открыткой. Мы верим, что посуда с историей — это не просто вещь, а особое настроение, которое делает каждый день красивее. Подарите своим близким уникальный подарок с историей! Узнать больше #реклама 16+ vindemia.ru О рекламодателе
258
13
Задача: 1054. Distant Barcodes Сложность: medium На складе имеется ряд штрих-кодов, где i-й штрих-код - barcodes[i]. Переставьте штрих-коды так, чтобы два соседних штрих-кода не были одинаковыми. Вы можете вернуть любой ответ, и гарантируется, что ответ существует. Пример: Input: barcodes = [1,1,1,2,2,2] Output: [2,1,2,1,2,1] 👨‍💻 Алгоритм: 1⃣Подсчитай частоту каждого штрих-кода. Помести все штрих-коды в максимальную кучу на основе их частоты. 2⃣Извлекай штрих-коды из кучи, чередуя их, чтобы два соседних штрих-кода не были одинаковыми. 3⃣Если куча становится пустой, помести временно сохранённый штрих-код обратно в кучу. 😎 Решение: function rearrangeBarcodes(barcodes) { const count = new Map(); for (const barcode of barcodes) { count.set(barcode, (count.get(barcode) || 0) + 1); } const maxHeap = []; for (const [barcode, freq] of count) { maxHeap.push([-freq, barcode]); } maxHeap.sort((a, b) => a[0] - b[0]); const result = []; let prevFreq = 0; let prevBarcode = null; while (maxHeap.length) { const [freq, barcode] = maxHeap.pop(); result.push(barcode); if (prevFreq < 0) { maxHeap.push([prevFreq, prevBarcode]); maxHeap.sort((a, b) => a[0] - b[0]); } prevFreq = freq + 1; prevBarcode = barcode; } return result; } Ставь 👍 и забирай 📚 Базу знаний
464
14
Задача: 1237. Find Positive Integer Solution for a Given Equation Сложность: medium Если дана вызываемая функция f(x, y) со скрытой формулой и значением z, выполните обратную разработку формулы и верните все пары целых положительных чисел x и y, в которых f(x,y) == z. Пары можно возвращать в любом порядке. Хотя точная формула скрыта, функция является монотонно возрастающей, т.е.Например: f(x, y) < f(x + 1, y) f(x, y) < f(x, y + 1) Интерфейс функции определяется следующим образом: interface CustomFunction { public: // Возвращает некоторое положительное целое число f(x, y) для двух положительных целых чисел x и y на основе формулы. int f(int x, int y); }; Мы будем оценивать ваше решение следующим образом: у судьи есть список из 9 скрытых реализаций CustomFunction, а также способ сгенерировать ключ ответа из всех допустимых пар для определенного z. Судья получит два входа: function_id (чтобы определить, с какой реализацией тестировать ваш код) и целевое z. Судья вызовет ваш findSolution и сравнит ваши результаты с ключом ответа. Если ваши результаты совпадут с ключом ответа, ваше решение будет принято. Пример: Input: function_id = 1, z = 5 Output: [[1,4],[2,3],[3,2],[4,1]] 👨‍💻 Алгоритм: 1⃣Начнем с =1 x=1 и 𝑦=1000 y=1000 (предполагаем максимальное значение y). 2⃣Перемещение указателей: Если 𝑓(𝑥,𝑦)=𝑧 f(x,y)=z, добавляем пару (𝑥,𝑦)(x,y) в результат и увеличиваем x. 3⃣Повторяем шаги до тех пор, пока 𝑥≤1000 x≤1000 и 𝑦≥1y≥1. 😎 Решение: class CustomFunction { f(x, y) {} } var findSolution = function(customfunction, z) { let result = []; let x = 1; let y = 1000; while (x <= 1000 && y >= 1) { let value = customfunction.f(x, y); if (value === z) { result.push([x, y]); x++; } else if (value < z) { x++; } else { y--; } } return result; }; Ставь 👍 и забирай 📚 Базу знаний
344
15
Задача: №19. Remove Nth Node From End of List Сложность: medium Дан связанный список и число n. Нужно удалить n-й узел с конц
Задача: №19. Remove Nth Node From End of List Сложность: medium Дан связанный список и число n. Нужно удалить n-й узел с конца и вернуть голову изменённого списка. Пример: Input: head = [1,2,3,4,5], n = 2 Output: [1,2,3,5] 👨‍💻 Алгоритм: 1️⃣ Создаем фиктивный узел dummy, указывающий на head. Инициализируем два указателя — fast и slow на dummy. 2️⃣ Сдвигаем fast на n шагов вперёд. Затем двигаем fast и slow одновременно, пока fast не дойдёт до конца списка. 3️⃣ В этот момент slow.next указывает на узел, который нужно удалить. Обновляем slow.next, чтобы пропустить этот узел. Возвращаем dummy.next как новую голову. 😎 Решение: var removeNthFromEnd = function (head, n) { const dummy = new ListNode(0, head); let fast = dummy, slow = dummy; while (n--) { fast = fast.next; } while (fast.next) { fast = fast.next; slow = slow.next; } slow.next = slow.next.next; return dummy.next; }; Ставь 👍 и забирай 📚 Базу знаний
383
16
Учишься в 9-11 классе и изучаешь программирование? Прими участие в олимпиаде Высшая проба по промышленному программированию о
Учишься в 9-11 классе и изучаешь программирование? Прими участие в олимпиаде Высшая проба по промышленному программированию от Яндекса и ВШЭ! Получи опыт решения кейсов из индустрии, подарки от Яндекса, БВИ или 100 баллов по профильному предмету. Регистрируйся до 20 октября! Узнать больше #реклама 16+ olymp.hse.ru О рекламодателе
295
17
Задача: 1057. Campus Bikes Сложность: medium В городке, изображенном на плоскости X-Y, есть n рабочих и m велосипедов, причем n <= m. Вам дан массив workers длины n, где workers[i] = [xi, yi] - положение i-го рабочего. Вам также дан массив bikes длины m, где bikes[j] = [xj, yj] - позиция j-го велосипеда. Все заданные позиции уникальны. Назначаем велосипед каждому работнику. Среди доступных велосипедов и работников мы выбираем пару (workeri, bikej) с наименьшим манхэттенским расстоянием между ними и назначаем велосипед этому работнику. Если существует несколько пар (workeri, bikej) с одинаковым наименьшим манхэттенским расстоянием, мы выбираем пару с наименьшим индексом работника. Если существует несколько способов сделать это, мы выбираем пару с наименьшим индексом велосипеда. Повторяем этот процесс до тех пор, пока не останется свободных работников. Возвращаем массив answer длины n, где answer[i] - индекс (с индексом 0) велосипеда, на который назначен i-й работник. Манхэттенское расстояние между двумя точками p1 и p2 равно Manhattan(p1, p2) = |p1.x - p2.x| + |p1.y - p2.y|. Пример: Input: workers = [[0,0],[2,1]], bikes = [[1,2],[3,3]] Output: [1,0] 👨‍💻 Алгоритм: 1⃣Для каждой пары (работник, велосипед) вычисли Манхэттенское расстояние и сохрани все пары вместе с расстоянием в список. 2⃣Отсортируй список пар по расстоянию, а затем по индексу работника и велосипеда. Назначь велосипеды работникам, следуя отсортированному списку пар и отслеживая, какие работники и велосипеды уже были использованы. 3⃣Заполни и верни массив назначений. 😎 Решение: function assignBikes(workers, bikes) { const pairs = []; for (let i = 0; i < workers.length; i++) { for (let j = 0; j < bikes.length; j++) { const distance = Math.abs(workers[i][0] - bikes[j][0]) + Math.abs(workers[i][1] - bikes[j][1]); pairs.push([distance, i, j]); } } pairs.sort((a, b) => { if (a[0] !== b[0]) return a[0] - b[0]; if (a[1] !== b[1]) return a[1] - b[1]; return a[2] - b[2]; }); const result = Array(workers.length).fill(-1); const bikeTaken = Array(bikes.length).fill(false); const workerAssigned = Array(workers.length).fill(false); for (const [distance, workerIdx, bikeIdx] of pairs) { if (!workerAssigned[workerIdx] && !bikeTaken[bikeIdx]) { result[workerIdx Ставь 👍 и забирай 📚 Базу знаний
432
18
ИИ-пилоты не дают эффекта? Разбираем ошибки CIO ИИ-пилоты множатся, а результата нет? Бюджет уходит, бизнес ждёт эффекта, а в
ИИ-пилоты не дают эффекта? Разбираем ошибки CIO ИИ-пилоты множатся, а результата нет? Бюджет уходит, бизнес ждёт эффекта, а вы не понимаете, где ИИ действительно работает, а где — дорогой эксперимент? Присоединяйтесь к открытому уроку и узнайте, как CIO выстраивает ИИ-стратегию компании. 📅 19 октября в 19:00. Сергей Фегон разберёт: - Как ИИ меняет роль CIO и требования бизнеса к IT-руководителю. - Где ИИ даёт бизнес-эффект, а где остаётся экспериментом. - Как связать ИИ-инициативы с IT-стратегией и измеримыми результатами. - Что учитывать при внедрении: данные, архитектура, безопасность, стоимость, интеграция. Вы научитесь выбирать приоритетные сценарии ИИ, оценивать их по эффекту, стоимости и рискам и переходить от пилотов к промышленному использованию. ✅ Запишитесь сейчас и наведите порядок в ИИ-инициативах! Узнать больше #реклама 16+ otus.ru О рекламодателе
293
19
🔥 Скрытые вакансии с удаленной работой для Frontend разработчика, которые нигде больше не публикуются. Напрямую от компаний,
🔥 Скрытые вакансии с удаленной работой для Frontend разработчика, которые нигде больше не публикуются. Напрямую от компаний, с контактами рекрутеров. 🔹 Frontend Jobs | Вакансии 🔹 Node.js Jobs | Вакансии 🔸 Все каналы с вакансиями
407
20
Встречай смартфон Honor — с выгодой для себя! ✅ Стильный дизайн ✅ Заряд надолго ✅ Качественные фото ✅ Быстрая и плавная работ
Встречай смартфон Honor — с выгодой для себя! ✅ Стильный дизайн ✅ Заряд надолго ✅ Качественные фото ✅ Быстрая и плавная работа Выбирай свой Honor по привлекательной цене! Купить #реклама market.yandex.ru О рекламодателе
326