ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

JavaScript | LeetCode

JavaScript | LeetCode

前往频道在 Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

显示更多
8 263
订阅者
-424 小时
-287 天
-12730 天
吸引订阅者
10月 '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