LeetCode
Minimum Size Subarray Sum - LeetCode
Can you solve this real interview question? Minimum Size Subarray Sum - Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarray…
#ЛитКод
Задача: 363. Max Sum of Rectangle No Larger Than K
Дана матрица размером m x n и целое число k, вернуть максимальную сумму прямоугольника в матрице, такая что его сумма не превышает k.
Гарантируется, что будет прямоугольник с суммой, не превышающей k.
Пример:
👨💻 Алгоритм:
1⃣ Создать вспомогательную функцию updateResult, которая будет находить максимальную сумму подмассива в одномерном массиве, не превышающую k.
2⃣ Преобразовать каждую подматрицу в одномерный массив и применить к ней функцию updateResult.
3⃣ Вернуть максимальную найденную сумму.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 363. Max Sum of Rectangle No Larger Than K
Дана матрица размером m x n и целое число k, вернуть максимальную сумму прямоугольника в матрице, такая что его сумма не превышает k.
Гарантируется, что будет прямоугольник с суммой, не превышающей k.
Пример:
Input: matrix = [[1,0,1],[0,-2,3]], k = 2
Output: 2
Explanation: Because the sum of the blue rectangle [[0, 1], [-2, 3]] is 2, and 2 is the max number no larger than k (k = 2).
class Solution {
constructor() {
this.result = Number.NEGATIVE_INFINITY;
}
updateResult(nums, k) {
let sum = 0;
const sortedSum = [0];
for (let num of nums) {
sum += num;
let idx = this.binarySearch(sortedSum, sum - k);
if (idx < sortedSum.length) {
this.result = Math.max(this.result, sum - sortedSum[idx]);
}
sortedSum.push(sum);
sortedSum.sort((a, b) => a - b);
}
}
binarySearch(arr, target) {
let left = 0, right = arr.length;
while (left < right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] < target) left = mid + 1;
else right = mid;
}
return left;
}
maxSumSubmatrix(matrix, k) {
const rows = matrix.length;
const cols = matrix[0].length;
for (let i = 0; i < rows; i++) {
let rowSum = Array(cols).fill(0);
for (let row = i; row < rows; row++) {
for (let col = 0; col < cols; col++) {
rowSum[col] += matrix[row][col];
}
this.updateResult(rowSum, k);
if (this.result === k) {
return this.result;
}
}
}
return this.result;
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #docker
🤔 Есть ли ограничения на количество контейнеров, которые можно запустить в Docker?
💬 Кратко:
B Docker нет явного ограничения на количество контейнеров. Ограничения зависят от аппаратных ресурсов, таких как обьем памяти и количество процессорных ядер.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
B Docker нет явного ограничения на количество контейнеров. Ограничения зависят от аппаратных ресурсов, таких как обьем памяти и количество процессорных ядер.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#статьи
😱 Кэширование информации в Redis на NestJS
Статья показывает, как подключить Redis к проекту и настроить кэширование данных с помощью @nestjs-mod/cache-manager. Рассматриваются примеры работы с Docker Compose и Kubernetes для оптимизации запросов.
Читать
👉 Новости 👉 База вопросов
Статья показывает, как подключить Redis к проекту и настроить кэширование данных с помощью @nestjs-mod/cache-manager. Рассматриваются примеры работы с Docker Compose и Kubernetes для оптимизации запросов.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Кэширование информации в Redis на NestJS
Предыдущая статья: Интеграция внешнего файлового сервера https://min.io в фулстек приложение на NestJS и Angular На каждом фронтенд запросе к бэкенду запрашивается информация по профилю пользователя...
❤2
#полезное
😐 Неожиданное возвращение: легендарный Smalltalk-80 обрёл новую жизнь в мире JavaScript.
Теперь это бесплатная и опенсорсная реализация, которая компилируется в JS и работает как в браузере, так и в Node.js. Сохраняется дух полностью объектно-ориентированного Smalltalk, но с привычным синтаксисом и экосистемой JS.
🟠 Вместо «имиджей» используется файловая структура — удобно писать в VS Code
🟠 Подсветка кода и отладка доступны сразу «из коробки»
🟠 Классы и методы максимально близки к JavaScript, поэтому порог входа минимален
🟠 Встроены браузерные API, Express, базы данных, файловая система и даже многопоточность
Еще недавно появилась поддержка NW.js, так что теперь можно собирать кроссплатформенные десктопные приложения с интерфейсами на HTML+CSS — легче и менее прожорливо, чем на Electron.
Подробнее и с примерами: https://small-js.org/
👉 Новости 👉 База вопросов
Теперь это бесплатная и опенсорсная реализация, которая компилируется в JS и работает как в браузере, так и в Node.js. Сохраняется дух полностью объектно-ориентированного Smalltalk, но с привычным синтаксисом и экосистемой JS.
Еще недавно появилась поддержка NW.js, так что теперь можно собирать кроссплатформенные десктопные приложения с интерфейсами на HTML+CSS — легче и менее прожорливо, чем на Electron.
Подробнее и с примерами: https://small-js.org/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#статьи
😬 Отслеживание позиций торгового робота Московской биржи через CSV файл
Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...
👉 Новости 👉 База вопросов
Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Отслеживание позиций торгового робота Московской биржи через CSV файл
Нахожусь в процессе написания механизма торгового робота, работающего на Московской бирже через API одного из брокеров. Брокеров имеющих своё АПИ для МосБиржи катастрофически...
❤2
#Собес #docker
🤔 Что такое Docker Compose?
💬 Кратко:
Docker Compose - это инструмент для управления многоконтейнерными приложениями. С помощью простого YAML-файла (
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Docker Compose - это инструмент для управления многоконтейнерными приложениями. С помощью простого YAML-файла (
docker-compose. yml ) можно настроить и запустить несколько контейнеров, определяя их сервисы, сети и тома.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
👋 Удобный просмотр кода с rendergit
С помощью rendergit вы можете легко преобразовать любой репозиторий GitHub в статическую HTML-страницу с подсветкой синтаксиса и навигацией. Идеально подходит для быстрого просмотра, анализа кода и удобного поиска.
Основные моменты:
🔴 Два режима просмотра: Человеческий и LLM
🔴 Подсветка синтаксиса и рендеринг Markdown
🔴 Умное фильтрование больших файлов
🔴 Адаптивный дизайн для мобильных устройств
🔴 Удобная навигация по файлам
GitHub
👉 Новости 👉 База вопросов
С помощью rendergit вы можете легко преобразовать любой репозиторий GitHub в статическую HTML-страницу с подсветкой синтаксиса и навигацией. Идеально подходит для быстрого просмотра, анализа кода и удобного поиска.
Основные моменты:
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Thread Pool в Node.js 🙂
Node.js у нас вроде как “однопоточный”, да? Но это не значит, что у него под капотом нет магии. Помимо Event Loop, в деле ещё участвует thread pool — набор рабочих потоков, которыми управляет библиотека libuv
🐧 Сколько потоков?
По умолчанию их 4. Но если хочется больше — можно поднять значение переменной окружения UV_THREADPOOL_SIZE (максимум до 1024)
😳 Зачем он нужен?
Thread pool берёт на себя тяжёлые и блокирующие задачи, чтобы не нагружать Event Loop. Туда скидываются:
1) операции с файловой системой (fs)
2) криптография (hash, pbkdf2 и т.п.)
3) DNS-резолвы
4) компрессия/декомпрессия
И пока отдельный поток уничтожает задачки — твой основной поток (event loop) спокойно крутит коллбеки и промисы
⌨️ Можно ли к тред пулу обратиться самому?
Напрямую нет, но можешь использовать нативные API (fs, crypto и т.д.), которые уже завязаны на thread pool. А вот если подключаешь native addon (N-API или Nan), то да, там можно регистрировать асинхронные задачки через uv_queue_work. И тогда твой C++ код действительно будет выполняться в thread pool
Кста не путать тред пул и worker_threads — это совсем другой инструмент
В итоге: Node.js сам решает, что кидать в thread pool, но знать о инсутрменте полезно, чтобы понимать почему работа с криптографией не блокирует наш основной поток эвент лупа
🚀 Пост Guru Node.js: @DemetraIT
Node.js у нас вроде как “однопоточный”, да? Но это не значит, что у него под капотом нет магии. Помимо Event Loop, в деле ещё участвует thread pool — набор рабочих потоков, которыми управляет библиотека libuv
По умолчанию их 4. Но если хочется больше — можно поднять значение переменной окружения UV_THREADPOOL_SIZE (максимум до 1024)
Thread pool берёт на себя тяжёлые и блокирующие задачи, чтобы не нагружать Event Loop. Туда скидываются:
1) операции с файловой системой (fs)
2) криптография (hash, pbkdf2 и т.п.)
3) DNS-резолвы
4) компрессия/декомпрессия
И пока отдельный поток уничтожает задачки — твой основной поток (event loop) спокойно крутит коллбеки и промисы
Напрямую нет, но можешь использовать нативные API (fs, crypto и т.д.), которые уже завязаны на thread pool. А вот если подключаешь native addon (N-API или Nan), то да, там можно регистрировать асинхронные задачки через uv_queue_work. И тогда твой C++ код действительно будет выполняться в thread pool
Кста не путать тред пул и worker_threads — это совсем другой инструмент
В итоге: Node.js сам решает, что кидать в thread pool, но знать о инсутрменте полезно, чтобы понимать почему работа с криптографией не блокирует наш основной поток эвент лупа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
#Собес #docker
🤔 Можно ли потерять данные, если контейнер существует?
💬 Кратко:
Пока контейнер существует, данные не теряются. Потеря данных может произойти только при удалении контейнера, если данные не были сохранены в постоянном хранилище.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Пока контейнер существует, данные не теряются. Потеря данных может произойти только при удалении контейнера, если данные не были сохранены в постоянном хранилище.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
#полезное
📞 Совет по HTML
Примеры использования элементов thead, tbody и tfoot в HTML
👉 Новости 👉 База вопросов
Примеры использования элементов thead, tbody и tfoot в HTML
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2⚡1
#Собес #docker
🤔 Как удалить все остановленные контейнеры и неиспользуемые сети в Docker?
💬 Кратко:
Для удаления всех остановленных контейнеров и неиспользуемых сетей используется команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для удаления всех остановленных контейнеров и неиспользуемых сетей используется команда
docker system prune . Она также удаляет неиспользуемые образы и кэш.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#статьи
🤓 Способ стабильного создания больших приложений с помощью ИИ
Покажу, как собрать «большое» приложение из независимых модулей (~200 строк) с помощью ИИ: стабильные промпты, чат вместо агентов, бэкенд в Yandex Cloud. Плюсы и грабли.
Читать
👉 Новости 👉 База вопросов
Покажу, как собрать «большое» приложение из независимых модулей (~200 строк) с помощью ИИ: стабильные промпты, чат вместо агентов, бэкенд в Yandex Cloud. Плюсы и грабли.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Способ стабильного создания больших приложений с помощью ИИ
В этой статье я детально опишу свой опыт создания «большого» приложения с помощью ИИ. «Большое» оно по меркам, тех приложений, который показывают на презентация AI‑моделей. Уверен, ваше...
❤1
#статьи
🥄 Решаем задачу: как сохранить нервные клетки пользователей с помощью валидации поля ввода
В этом году я много путешествовал, поэтому нередко заполнял формы с анкетами на разные визы — в них бывало по 30—40 полей. Когда что-то шло не так, часто сайты не давали никакой обратной связи. Иногда они сбрасывали всё, что я заполнял в течение часа, если одно из полей невалидно.
Решить проблему могла бы валидация. Это критически важная часть разработки веб-приложений, которая соотносит данные с необходимым форматом и указывает на ошибки. Также она гарантирует безопасность дальнейшей обработки этих данных.
В этой статье мы разберёмся, как настроить валидацию поля ввода.
Читать статью
👉 Новости 👉 База вопросов
В этом году я много путешествовал, поэтому нередко заполнял формы с анкетами на разные визы — в них бывало по 30—40 полей. Когда что-то шло не так, часто сайты не давали никакой обратной связи. Иногда они сбрасывали всё, что я заполнял в течение часа, если одно из полей невалидно.
Решить проблему могла бы валидация. Это критически важная часть разработки веб-приложений, которая соотносит данные с необходимым форматом и указывает на ошибки. Также она гарантирует безопасность дальнейшей обработки этих данных.
В этой статье мы разберёмся, как настроить валидацию поля ввода.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🛞 Вызов функции через
👉 Новости 👉 База вопросов
evaleval вызывает функцию по её имени, заданному в functionName, и передаёт ей аргумент argument. В данном случае вызывается функция greet с аргументом "Alice".Please open Telegram to view this post
VIEW IN TELEGRAM
Guru Node.js at YeaHub | Деметра
Всем привет!
Я — Дима, Senior Backend разработчик на Node.js и ментор
В IT больше 6 лет: шикарно перекладываю json’ы в микросервисах. Поднял стартап с нуля до продакшена под высокой нагрузкой. Сейчас работаю в крупной компании и активно участвую в найме (провожу собеседования)
Менторю по Node.js — помогаю прокачаться, разложить backend по полочкам и выйти на работу мечты. Особенно люблю фронтов, которые решили перебраться на тёмную сторону
А ещё я Guru Node.js в YeaHub — слежу за качеством контента и всей экосистемой
А ещё подписывайтесь на другие каналы Экосистемы YeaHub
Проект YeaHub:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2
#Собес #docker
🤔 Как удалить Docker-контейнер?
💬 Кратко:
Чтобы удалить Docker-контейнер, используйте команду
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Чтобы удалить Docker-контейнер, используйте команду
docker rm c указанием ID или имени контейнера. Пример: docker rm mycontainer удаляет контейнер с именем mycontainer .📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#полезное
😊 Самая масштабная атака на экосистему JavaScript
Фишингом угнали npm-аккаунт мейнтейнера qix и пушнули апдейты в 18 ключевых пакетов (chalk, debug, strip-ansi, color-convert и др.) — суммарно это ~2,6 млрд загрузок в неделю.
В обновления вставили браузерный крипто-«клиппер»: на сайтах/в приложениях с уязвимыми версиями он перехватывает трафик и подменяет адреса кошельков.
Скомпрометированные версии — удалить немедленно из всех сред (локальные машины разработчиков, CI/CD, прод):
Что стоит сделать:
🟠 Удалить уязвимые версии из дерева зависимостей, пересобрать и задеплоить исправления.
🟠 Проверить lock-файлы (package-lock.json, yarn.lock, pnpm-lock.yaml) и node_modules на присутствие перечисленных версий.
🟠 Очистить кэш менеджера пакетов: npm cache clean --force, yarn cache clean, pnpm store prune.
🟠 Переустановить зависимости с нуля (удалив node_modules и lock-файлы) и заново зафиксировать версии.
🟠 Пересобрать фронтенд-бандлы, инвалидировать CDN/кэши, перезапустить рантаймы.
🟠 Проверить логи на внешние запросы из бандла, провести аудит внесённых PR/коммитов.
🟠 Ротировать ключи/токены, если могли утечь, и ужесточить 2FA/доступ к npm.
Разбор атаки
👉 Новости 👉 База вопросов
Фишингом угнали npm-аккаунт мейнтейнера qix и пушнули апдейты в 18 ключевых пакетов (chalk, debug, strip-ansi, color-convert и др.) — суммарно это ~2,6 млрд загрузок в неделю.
В обновления вставили браузерный крипто-«клиппер»: на сайтах/в приложениях с уязвимыми версиями он перехватывает трафик и подменяет адреса кошельков.
Скомпрометированные версии — удалить немедленно из всех сред (локальные машины разработчиков, CI/CD, прод):
ansi-styles@6.2.2
debug@4.4.2
chalk@5.6.1
supports-color@10.2.1
strip-ansi@7.1.1
ansi-regex@6.2.1
wrap-ansi@9.0.1
color-convert@3.1.1
color-name@2.0.1
is-arrayish@0.3.3
slice-ansi@7.1.1
color@5.0.1
color-string@2.1.1
simple-swizzle@0.2.3
supports-hyperlinks@4.1.1
has-ansi@6.0.1
chalk-template@1.1.1
backslash@0.2.1
error-ex@1.3.3
Что стоит сделать:
Разбор атаки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🤯1
Nest.js обмазан синтаксическим сахаром: пишешь @Controller, @Get — и всё работает. Но под капотом у каждого запроса есть целая цепочка этапов. Давай разберёмся, кто первый встречает твой запрос, а кто последний
Вопрос частый на собесах, рекомендую внимательно прочитать
Самый первый уровень. Тут можно переписать req, добавить хедеры, логировать. По сути — «до Nest-а». Работают так же, как в Express/Fastify
Самые первые на пути. Проверяют, можно ли вообще пропустить запрос дальше (авторизация, роли, доступ). Если guard сказал «нет» — дальше никто не работает.
Может подменить данные запроса или добавить что-то в контекст. Часто используют для логирования или кэширования.
Проверяют и трансформируют входные данные (валидаторы, касты типов). Например, ParseIntPipe превратит строку id в число. Если данные грязные — кидают ошибку и обрубают цикл.
Тут твой метод с бизнес-логикой
🪢 Interceptor (после вызова)
Может преобразовать ответ перед тем, как он уйдёт клиенту (например, обернуть результат в единую структуру ответа) — удобно для фронтов
Если где-то в цепочке бахнуло исключение — фильтр красиво его поймает и вернёт красивый ответ вместо 500-ки. Тоже удобно для фронтов, чтобы можно было вывести ошибку
⸻
⚡ Итоговый маршрут:
Middleware → Guard → Interceptor (до) → Pipe → Controller → Interceptor (после) → Exception Filter
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🏆3🔥2