JavaScript | LeetCode
رفتن به کانال در Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
نمایش بیشتر8 725
مشترکین
-124 ساعت
-197 روز
-9130 روز
در حال بارگیری داده...
کانالهای مشابه
ابر برچسبها
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
ژوئن '26
ژوئن '26
+40
در 1 کانالها
مه '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 ژوئن | +3 | |||
| 24 ژوئن | +2 | |||
| 23 ژوئن | 0 | |||
| 22 ژوئن | +3 | |||
| 21 ژوئن | +1 | |||
| 20 ژوئن | +3 | |||
| 19 ژوئن | +2 | |||
| 18 ژوئن | +1 | |||
| 17 ژوئن | 0 | |||
| 16 ژوئن | +2 | |||
| 15 ژوئن | +1 | |||
| 14 ژوئن | +1 | |||
| 13 ژوئن | 0 | |||
| 12 ژوئن | 0 | |||
| 11 ژوئن | +2 | |||
| 10 ژوئن | 0 | |||
| 09 ژوئن | +1 | |||
| 08 ژوئن | +2 | |||
| 07 ژوئن | +2 | |||
| 06 ژوئن | +1 | |||
| 05 ژوئن | 0 | |||
| 04 ژوئن | +2 | |||
| 03 ژوئن | +3 | |||
| 02 ژوئن | +7 | |||
| 01 ژوئن | +1 |
پستهای کانال
+1
Как стать QA с нуля и выйти на оффер от 150 К/мес
За 10 лет в IT я прошёл путь от первых шагов до Senior QA.
И знаю, как это выглядит изнутри:
Сначала не знаешь, с чего начать, и тонешь в инфе
Потом учишься, стараешься, но на собесах всё равно валишься
А дальше работа вроде есть, а зарплата годами стоит на месте
И всё время кажется, что проблема в тебе.
Но чаще всего проблема не в мотиваци, а в отсутствии системы.
Именно её я и выстраивал все эти годы: через ошибки, отказы и набитые шишки — пока не дошёл до офферов от X5, .bank, Bars Group и VL Projects.
А теперь собрал этот опыт в понятный маршрут и делюсь им в канале:
– как стартовать и расти в QA
– как наработать опыт для резюме
– как готовиться к собеседованиям
– как проходить отбор увереннее
– как выйти на оффер от 150К/мес
Подписывайся, пройдём этот путь вместе
Подписаться
#реклама 16+
edqa.ru
О рекламодателе
| 2 | Задача: 1250. Check If It Is a Good Array
Сложность: hard
Дан массив nums из целых положительных чисел. Ваша задача - выбрать некоторое подмножество nums, умножить каждый элемент на целое число и сложить все эти числа.Массив считается хорошим, если из него можно получить сумму, равную 1, при любом возможном подмножестве и множителе. Верните True, если массив хороший, иначе верните False.
Пример:
Input: nums = [12,5,7,23]
Output: true
👨💻 Алгоритм:
1⃣Если наибольший общий делитель (НОД) всех чисел в массиве равен 1, то массив считается хорошим.
2⃣Если НОД всех чисел больше 1, то массив не считается хорошим
3⃣Получить сумму, равную 1, умножая и складывая элементы.
😎 Решение:
var isGoodArray = function(nums) {
let gcd = nums[0];
for (let num of nums) {
gcd = gcdFunc(gcd, num);
if (gcd === 1) return true;
}
return gcd === 1;
};
function gcdFunc(a, b) {
while (b !== 0) {
let temp = b;
b = a % b;
a = temp;
}
return a;
}
Ставь 👍 и забирай 📚 Базу знаний | 260 |
| 3 | Аренда VPS/VDS-сервера.
Виртуальные выделенные серверы в дата-центрах уровня Tier III — 7 готовых конфигураций от 200 ₽/мес.
Преимущества аренды:
- Выделенные ресурсы без переплаты;
- KVM-виртуализация;
- Быстрые NVMe SSD;
- Соответствие 152-ФЗ, PCI DSS;
- Бесплатная защита от DDoS;
- Управление через панель, API и Terraform;
- Техподдержка 24/7.
Запустите сервер за несколько минут!
Попробовать
#реклама 16+
selectel.ru
О рекламодателе | 386 |
| 4 | Осталось 3 часа до конца акции:
«Пожизненный PRO тариф — по цене 1 года»
Поиск работы отнимает силы, время и веру в себя, но не у тех кто использует easyoffer PRO. Успей сделать самую выгодную инвестицию в развитие своей карьеры.
Акция закончится уже сегодня 23 июня 23:59 по мск:
👉 https://easyoffer.ru/pro | 130 |
| 5 | Задача: 528. Random Pick with Weight
Сложность: medium
Вам дан массив положительных целых чисел w, где w[i] описывает вес индекса i.
Вам нужно реализовать функцию pickIndex(), которая случайным образом выбирает индекс в диапазоне [0, w.length - 1] (включительно) и возвращает его. Вероятность выбора индекса i равна w[i] / sum(w).
Например, если w = [1, 3], вероятность выбора индекса 0 составляет 1 / (1 + 3) = 0.25 (т.е. 25%), а вероятность выбора индекса 1 составляет 3 / (1 + 3) = 0.75 (т.е. 75%).
Пример:
Input
["Solution","pickIndex","pickIndex","pickIndex","pickIndex","pickIndex"]
[[[1,3]],[],[],[],[],[]]
Output
[null,1,1,1,1,0]
Explanation
Solution solution = new Solution([1, 3]);
solution.pickIndex(); // return 1. It is returning the second element (index = 1) that has a probability of 3/4.
solution.pickIndex(); // return 1
solution.pickIndex(); // return 1
solution.pickIndex(); // return 1
solution.pickIndex(); // return 0. It is returning the first element (index = 0) that has a probability of 1/4.
Since this is a randomization problem, multiple answers are allowed.
All of the following outputs can be considered correct:
[null,1,1,1,1,0]
[null,1,1,1,1,1]
[null,1,1,1,0,0]
[null,1,1,1,0,1]
[null,1,0,1,0,0]
......
and so on.
👨💻 Алгоритм:
1⃣ Инициализация и предобработка весов:
В конструкторе создайте массив накопительных сумм prefixSums, где каждая позиция будет содержать сумму всех предыдущих весов до текущего индекса включительно.
Также в конструкторе сохраните общую сумму весов totalSum.
2⃣ Генерация случайного числа и выбор индекса:
В функции pickIndex() сгенерируйте случайное число в диапазоне от 0 до общей суммы весов totalSum.
Используйте линейный поиск, чтобы найти первый индекс в prefixSums, который больше или равен сгенерированному числу.
3⃣ Возврат результата:
Верните найденный индекс.
😎 Решение:
class Solution {
constructor(w) {
this.prefixSums = new Array(w.length).fill(0);
let prefixSum = 0;
for (let i = 0; i < w.length; i++) {
prefixSum += w[i];
this.prefixSums[i] = prefixSum;
}
this.totalSum = prefixSum;
}
pickIndex() {
const target = this.totalSum * Math.random();
for (let i = 0; i < this.prefixSums.length; i++) {
if (target < this.prefixSums[i]) {
return i;
}
}
return this.prefixSums.length - 1;
}
}
Ставь 👍 и забирай 📚 Базу знаний | 335 |
| 6 | Задача: 521. Longest Uncommon Subsequence I
Сложность: easy
Даны две строки a и b. Верните длину самой длинной несообщей подпоследовательности между a и b. Если такой несообщей подпоследовательности не существует, верните -1.
Несообщая подпоследовательность между двумя строками — это строка, которая является подпоследовательностью только одной из них.
Пример:
Input: a = "aba", b = "cdc"
Output: 3
Explanation: One longest uncommon subsequence is "aba" because "aba" is a subsequence of "aba" but not "cdc".
Note that "cdc" is also a longest uncommon subsequence.
👨💻 Алгоритм:
1⃣Если строка a равна строке b, верните -1, так как не существует несообщей подпоследовательности.
2⃣В противном случае: Вычислите длины строк a и b. Верните длину более длинной строки.
😎 Решение:
var findLUSlength = function(a, b) {
if (a === b) {
return -1;
} else {
return Math.max(a.length, b.length);
}
};
Ставь 👍 и забирай 📚 Базу знаний | 342 |
| 7 | Последний день акции:
«Пожизненный PRO тариф — по цене 1 года»
🚀 PRO включает:
– Полный доступ ко всем грейдам и профессиям
– База live-coding задач и вопросов из технических собеседований с вероятностью их встречи
– Примеры лучших ответов от Senior разработчиков
– 1100+ записи реальных собеседований, в том числе в топовые компании (Сбер, Авито, Яндекс, WB, OZON, МТС и др.)
– База 400+ тестовых заданий от компаний.
– Автоотклики на вакансии в хедхантер
– Аналитика ТОП-требований из вакансий для лучшего написания резюме и прохождения ATS систем рекрутеров
– Генератор уникального резюме и CV под каждую вакансию
– Тренажеры подготовки к собеседованию: «Реальное собеседование» и «Проработка вопросов» по методике интервальных повторений (как Anki)
– (скоро) Агрегатор вакансий
– (скоро) Сообщество
Акция закончится уже сегодня 23 июня 23:59 по мск:
👉 https://easyoffer.ru/pro | 306 |
| 8 | Хочешь начать карьеру в ИТ на оплачиваемой стажировке?
Присоединяйся к ИТ-лагерю Т1 для студентов вузов технических и ИТ-специальностей. Теперь в обновлённом формате: ещё больше практики, доступ к платформам Т1, а участие — оплачивается и оформляется как стажировка.
За 2,5 месяца вместе с проектной командой ты пройдешь полный цикл создания ИТ-продукта: от идеи до разработки прототипа и финальной защиты. Превратить идею в проект помогут мастер-классы, общение с экспертами и погружение в процессы Т1.
Направления подготовки:
✅ ручное тестирование;
✅ прикладное администрирование (DevOps);
✅ системный анализ;
✅ фронтенд-разработка (React);
✅ бэкэнд-разработка (Java).
Подай заявку до 30 июня! Старт — в июле.
Узнать больше
#реклама 16+
career.t1.ru
О рекламодателе | 303 |
| 9 | Задача: 851. Loud and Rich
Сложность: medium
Есть группа из n человек, пронумерованных от 0 до n - 1, где у каждого человека разное количество денег и разный уровень спокойствия.
Вам дан массив richer, где richer[i] = [ai, bi] указывает на то, что ai имеет больше денег, чем bi, и целочисленный массив quiet, где quiet[i] — это уровень спокойствия i-го человека. Все данные в richer логически корректны (т.е. данные не приведут к ситуации, где x богаче y и y богаче x одновременно).
Верните целочисленный массив answer, где answer[x] = y, если y — это самый спокойный человек (то есть человек y с наименьшим значением quiet[y]) среди всех людей, которые однозначно имеют столько же или больше денег, чем человек x.
Пример:
Input: richer = [[1,0],[2,1],[3,1],[3,7],[4,3],[5,3],[6,3]], quiet = [3,2,5,4,6,1,7,0]
Output: [5,5,2,5,4,5,6,7]
Explanation:
answer[0] = 5.
Person 5 has more money than 3, which has more money than 1, which has more money than 0.
The only person who is quieter (has lower quiet[x]) is person 7, but it is not clear if they have more money than person 0.
answer[7] = 7.
Among all people that definitely have equal to or more money than person 7 (which could be persons 3, 4, 5, 6, or 7), the person who is the quietest (has lower quiet[x]) is person 7.
The other answers can be filled out with similar reasoning.
👨💻 Алгоритм:
1⃣Постройте граф, описанный выше, и пусть dfs(person) будет самым спокойным человеком в поддереве person. Обратите внимание, что из-за логической последовательности утверждений граф должен быть DAG — ориентированным графом без циклов.
2⃣Теперь dfs(person) — это либо сам person, либо min(dfs(child) для каждого child из person). То есть, самый спокойный человек в поддереве — это либо сам person, либо самый спокойный человек в каком-то поддереве потомка person.
3⃣Мы можем кэшировать значения dfs(person) в answer[person], выполняя обход графа в пост-обходе. Таким образом, мы не повторяем работу. Этот метод уменьшает квадратичное время выполнения алгоритма до линейного.
😎 Решение:
var loudAndRich = function(richer, quiet) {
let N = quiet.length;
let graph = Array.from({ length: N }, () => []);
let answer = Array(N).fill(-1);
for (let [u, v] of richer) {
graph[v].push(u);
}
let dfs = function(node) {
if (answer[node] === -1) {
answer[node] = node;
for (let child of graph[node]) {
let cand = dfs(child);
if (quiet[cand] < quiet[answer[node]]) {
answer[node] = cand;
}
}
}
return answer[node];
};
for (let node = 0; node < N; node++) {
dfs(node);
}
return answer;
};
Ставь 👍 и забирай 📚 Базу знаний | 307 |
| 10 | Системный администратор для юр. лиц / IT-аутсорсинг
Айти-аутсорсинг для бизнеса.
– Устраняем проблемы и сбои в работе офисной техники;
– Обеспечиваем безопасность вашей IT-инфраструктуры;
– Обновляем и настраиваем программное обеспечение;
– Подключаем и настраиваем удаленный доступ.
Оперативно поможем с любым вопросом – от консультации до поддержки. Оставляйте заявку на сайте и наши специалисты свяжутся с вами.
Узнать больше
#реклама
it-tula.ru
О рекламодателе | 339 |
| 11 | Пожизненный PRO тариф — по цене 1 года.
Покупаешь один раз — пользуешься всю жизнь:
👉 https://easyoffer.ru/pro
🚀 PRO-доступ закроет 99% проблем на пути к офферу:
1. Полный доступ ко всем грейдам и профессиям. Не важно, Junior вы или Senior, Тестировщик, Разработчик, Проджект — вы получите материалы под ваш текущий уровень и цели, без ограничений.
2. База live-coding задач и вопросов с реальных собесов с уникальной системой вероятности их встречи. Вы будете готовиться не вслепую, а точечно по тем темам, которые спрашивают чаще всего.
3. Эталонные ответы от Senior-разработчиков. Никакой воды и догадок — только четкие, структурированные решения, за которые дают «зеленый свет» к офферу
4. 1100+ записей реальных собеседований (включая топы: Сбер, Авито, Яндекс, WB, OZON, МТС). Вы увидите всё изнутри: как спрашивают, как отвечают сильные кандидаты и на каких ошибках проваливаются 80% проходящих.
5. База 400+ тестовых заданий. Если вы еще студент, то практикуйтесь на решении задач, которые помогут попасть на собес
6. Автоотклики на Хедхантере — пока вы спите, ваше резюме летит к рекрутерам автоматически. Это экономия сотен часов ручного кликанья.
7. Аналитика ТОП-требований из вакансий. Мы парсим рынок и показываем, какие скиллы сейчас в цене. Это позволит вам точечно апгрейдить резюме и проходить суровые ATS-фильтры (которые отсеивают до 75% резюме еще до просмотра рекрутером).
8. Генератор уникального резюме и CV под каждую вакансию. Забудьте про «универсальное» резюме — нейросеть адаптирует ваш опыт под конкретную позицию за минуту, повышая шансы на приглашение в разы.
9. Тренажеры подготовки к собеседованию:
«Реальное собеседование» — сценарий вопросов из реальных интервью
«Проработка вопросов» — флеш карточки с вопросами/ответами по методике интервальных повторений (как Anki)
10. (Скоро) Агрегатор вакансий — все вакансии из HH, Telegram, LinkedIn и других площадок в одной ленте.
11. (Скоро) Закрытое комьюнити — нетворкинг и помощь в сложных вопросах от таких же целеустремленных айтишников.
Завтра последний день акции:
👉 https://easyoffer.ru/pro | 311 |
| 12 | Задача: 861. Score After Flipping Matrix
Сложность: hard
Дан целочисленный массив nums и целое число k. Верните длину самой короткой непустой подмассива nums, сумма которого составляет как минимум k. Если такого подмассива нет, верните -1.
Подмассив — это непрерывная часть массива.
Пример:
Input: nums = [1], k = 1
Output: 1
👨💻 Алгоритм:
1⃣Создайте "моноочередь" индексов P: дек индексов x_0, x_1, ..., так чтобы P[x_0], P[x_1], ... увеличивались.
2⃣При добавлении нового индекса y, удалите x_i из конца дека, чтобы P[x_0], P[x_1], ..., P[y] увеличивались.
3⃣Если P[y] >= P[x_0] + K, то (как описано ранее) мы больше не рассматриваем этот x_0 и удаляем его из начала дека.
😎 Решение:
var shortestSubarray = function(A, K) {
const N = A.length;
const P = new Array(N + 1).fill(0);
for (let i = 0; i < N; ++i) {
P[i + 1] = P[i] + A[i];
}
let ans = N + 1;
const monoq = [];
for (let y = 0; y < P.length; ++y) {
while (monoq.length > 0 && P[y] <= P[monoq[monoq.length - 1]]) {
monoq.pop();
}
while (monoq.length > 0 && P[y] >= P[monoq[0]] + K) {
ans = Math.min(ans, y - monoq.shift());
}
monoq.push(y);
}
return ans < N + 1 ? ans : -1;
};
Ставь 👍 и забирай 📚 Базу знаний | 334 |
| 13 | Нужны 7 желающих для работы с искусственным интеллектом.
Требования: 18-45 лет
Работа из дома. График свободный.
Пришло задание — изучили — выполнили — получили свои деньги.
Деньги вы получаете в зависимости от сложности задания. Например:
За задание могут платить 500-10.000 рублей.
500 рублей — это около 5-30 минут.
10 000 руб. это 5-6 часов.
Работа может быть разной: Оживить фото, создать видео, реставрировать старое фото и т.д.
💰 В среднем новичок получает до 150.000 руб в месяц. А опытный может и 300-500т.
Мы обучим вас сами:
— 3 дня уроков по 30 минут
— Домашки с проверкой и оплатой бонусами
— Платим 10 тыс за каждую выполненную домашку
⚡ Набор заканчивается завтра.
Для регистрации жмите кнопку "Зарегистрироваться":
Зарегистрироваться
#реклама 16+
course.neurogansta.ru
О рекламодателе | 342 |
| 14 | Задача: 1234. Replace the Substring for Balanced String
Сложность: medium
Вам дана строка s длины n, содержащая только четыре вида символов: 'Q', 'W', 'E' и 'R'. Строка считается сбалансированной, если каждый из ее символов встречается n / 4 раз, где n - длина строки. Верните минимальную длину подстроки, которую можно заменить любой другой строкой той же длины, чтобы сделать s сбалансированной. Если s уже сбалансирована, верните 0.
Пример:
Input: s = "QWER"
Output: 0
👨💻 Алгоритм:
1⃣Проверка баланса:
Сначала проверим, сбалансирована ли строка s. Если да, то возвращаем 0.
2⃣Подсчет частоты символов:
Подсчитаем количество каждого символа в строке s.
3⃣Использование скользящего окна:
Используем метод двух указателей (скользящее окно) для нахождения минимальной подстроки, которую можно заменить, чтобы строка стала сбалансированной.
Начнем с окна, которое захватывает всю строку, и будем постепенно уменьшать его, проверяя при каждом шаге, становится ли строка сбалансированной.
😎 Решение:
var balancedString = function(s) {
const n = s.length;
const count = new Map();
for (const c of s) {
count.set(c, (count.get(c) || 0) + 1);
}
const target = n / 4;
const isBalanced = () => {
return 'QWER'.split('').every(c => (count.get(c) || 0) <= target);
};
if (isBalanced()) return 0;
let minLength = n;
let left = 0;
for (let right = 0; right < n; right++) {
count.set(s[right], count.get(s[right]) - 1);
while (isBalanced()) {
minLength = Math.min(minLength, right - left + 1);
count.set(s[left], (count.get(s[left]) || 0) + 1);
left++;
}
}
return minLength;
};
Ставь 👍 и забирай 📚 Базу знаний | 333 |
| 15 | Задача: 253. Meeting Rooms II
Сложность: medium
Дан массив интервалов времени встреч intervals, где intervals[i] = [starti, endi]. Верните минимальное количество необходимых конференц-залов.
Пример:
Input: intervals = [[0,30],[5,10],[15,20]]
Output: 2
👨💻 Алгоритм:
1️⃣Отсортируйте встречи по времени их начала и инициализируйте мин-кучу с временем окончания первой встречи.
2️⃣Для каждой последующей встречи проверьте, свободна ли комната (сравните время начала встречи с минимальным временем окончания в куче):
Если свободна, обновите время окончания этой комнаты.
Если не свободна, добавьте новое время окончания в кучу.
3️⃣После обработки всех встреч размер кучи будет равен минимальному количеству необходимых комнат.
😎 Решение:
class Solution {
minMeetingRooms(intervals) {
intervals.sort((a, b) => a[0] - b[0])
const heap = [intervals[0][1]]
for (let i = 1; i < intervals.length; i++) {
if (intervals[i][0] >= heap[0]) {
heap.shift()
}
heap.push(intervals[i][1])
heap.sort((a, b) => a - b)
}
return heap.length
}
}
Ставь 👍 и забирай 📚 Базу знаний | 400 |
| 16 | Вакансия Альфа-Агент — в команде Альфа-Банка
Станьте Альфа-Агентом — работа в прямых продажах у лучшего работодателя страны. Присоединяйтесь к команде ❤️
Конкурентоспособная зарплата, расширенный ДМС со стоматологией, программа поддержки первые 3 месяца. Карьера в ваших руках!
Смотрите актуальные вакансии на официальном сайте Альфа-Банка.
Перейти на сайт
#реклама
job.alfabank.ru
О рекламодателе | 307 |
| 17 | Привет, ребята!
У нас для вас отличные новости — на easyoffer вышло сразу несколько крупных обновлений:
1. Автоотклики на HeadHunter
Снова работают в полную силу — можно смело возвращаться к активному поиску.
2. Новый раздел «Резюмейкер»
Теперь вы можете быстро создавать уникальные резюме, адаптированные под каждую вакансию, и сразу добавлять сопроводительное письмо. Это заметно повышает шансы получить приглашение на собеседование.
3. База вопросов стала чище
Мы навели порядок и удалили около 30% дубликатов.
Ориентироваться стало проще.
––––––––––––––––––
🔥 Акция в честь обновления
Пожизненный тариф easyoffer PRO — по цене одного года.
Успейте до 23 июня:
👉 https://easyoffer.ru/pro
––––––––––––––––––
Что дальше?
В ближайшие пару недель добавим ещё два раздела:
1. Сообщество с чатами по всем профессиональным направлениям.
2. Агрегатор вакансий, чтобы поиск работы стал ещё удобнее. | 342 |
| 18 | Ищу желающих заполнять карточки товаров на ВБ!
Нужно создавать карточки на ВБ. Ничего сложного.
Работа полностью на удаленке с зп до150 000 рублей в месяц.
Без опыта, нужен только телефон, занятость 3-6 часов в день.
Всему обучат на бесплатном курсе и после возьму на работу:
✅ 3 дня уроков по 30 минут
✅ Домашки с проверкой и оплатой бонусами
✅ Плачу 10 тыс за каждую выполненную домашку
Все кто пройдет курс, получат сертификат от школы с образовательной лицензией.
⚡ Набор заканчивается завтра.
👍 Для регистрации жмите кнопку "Зарегистрироваться":
Зарегистрироваться
#реклама 16+
course.wildmanager.ru
О рекламодателе | 413 |
| 19 | Задача: 1380. Lucky Numbers in a Matrix
Сложность: easy
Дана матрица m x n из различных чисел, верните все счастливые числа в матрице в любом порядке.
Счастливое число — это элемент матрицы, который является минимальным элементом в своей строке и максимальным в своем столбце.
Пример:
Input: matrix = [[3,7,8],[9,11,13],[15,16,17]]
Output: [15]
Explanation: 15 is the only lucky number since it is the minimum in its row and the maximum in its column.
👨💻 Алгоритм:
1⃣Сохраните минимум каждой строки в список rowMin и максимум каждого столбца в список colMax.
2⃣Итерируйте по каждому числу в матрице и проверяйте, равно ли оно rowMin[i] и colMax[j].
3⃣Если число удовлетворяет условию, добавьте его в список luckyNumbers и верните luckyNumbers.
😎 Решение:
var luckyNumbers = function(matrix) {
let N = matrix.length;
let M = matrix[0].length;
let rowMin = [];
for (let i = 0; i < N; i++) {
let rMin = Math.min(...matrix[i]);
rowMin.push(rMin);
}
let colMax = [];
for (let i = 0; i < M; i++) {
let cMax = -Infinity;
for (let j = 0; j < N; j++) {
cMax = Math.max(cMax, matrix[j][i]);
}
colMax.push(cMax);
}
let luckyNumbers = [];
for (let i = 0; i < N; i++) {
for (let j = 0; j < M; j++) {
if (matrix[i][j] === rowMin[i] && matrix[i][j] === colMax[j]) {
luckyNumbers.push(matrix[i][j]);
}
}
}
return luckyNumbers;
};
Ставь 👍 и забирай 📚 Базу знаний | 570 |
| 20 | Битрикс24 — бесплатный сервис для бизнеса и работы
В нём есть всё необходимое для работы:
— мессенджер с каналами, групповыми чатами, кружочками и голосовыми
— видеозвонки с ИИ-расшифровкой и рекомендациями
— таск-трекер с гибким управлением (канбан-доски, скрам, диаграмма Ганта, списки)
— CRM со скриптами, автоматизацией и речевой аналитикой
— онлайн-доски для совместной работы и идей
— искусственный интеллект для подготовки текстов, итогов встреч, заполнения карточек в CRM и генерации повторных продаж.
+10 инструментов для бизнеса в одном сервисе Битрикс24. Выгодно и удобно.
Есть бесплатный тариф.
Зарегистрироваться
#реклама 16+
bitrix24.ru
О рекламодателе | 386 |
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
