fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

JavaScript

JavaScript

رفتن به کانال در Telegram

Всё о JavaScript и frontend-разработке. Проверка своих знаний по языку JavaScript. Ссылка: @Portal_v_IT Сотрудничество: @oleginc,

نمایش بیشتر
2 399
مشترکین
+124 ساعت
-87 روز
-2830 روز
آرشیو پست ها
👩‍💻 Всем программистам посвящается! Вот 14 авторских обучающих IT каналов по самым востребованным областям программирования: Выбирай своё направление: 👩‍💻 Python — t.me/python_ready 🤔 InfoSec & Хакинг — t.me/hacking_ready 🖥 SQL & Базы Данных — t.me/sql_ready 👩‍💻 IT Новости — t.me/it_ready 🤖 AI & ML — t.me/neuro_ready 👩‍💻 Frontend — t.me/frontend_ready 👩‍💻 C/C++ — https://t.me/cpp_ready 👩‍💻 C# & Unity — t.me/csharp_ready 👩‍💻 Linux — t.me/linux_ready 👩‍💻 Java — t.me/java_ready 📖 IT Книги — t.me/books_ready 📱 JavaScript — t.me/javascript_ready 🖼️ DevOps — t.me/devops_ready 🖥 Design —t.me/design_ready 📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!

Чем заменить Claude Code в России: китайские ИИ вместо западных сервисов Российским пользователям все чаще блокируют аккаунты
Чем заменить Claude Code в России: китайские ИИ вместо западных сервисов Российским пользователям все чаще блокируют аккаунты в западных ИИ-сервисах, возникают проблемы с оплатой, а привычные инструменты становятся менее доступными. Но это не повод отказываться от ИИ как рабочего инструмента. На бесплатном практикуме Кирилл Пшинник, CEO Университета Зерокодера, покажет, как работать с китайскими ИИ ZCode и DeepSeek Harness на практике: от создания сайтов до аналитики и автоматизации задач. Что ждет вас на практикуме? • Собрать дашборд с графиками и выводами из таблицы; • Создать лендинг с формой заявки по текстовому описанию; • Получить 3D-модель, просто описав объект словами; • Начать работать из России без блокировок и обходных путей. Также сравним китайские инструменты с Claude Code и Codex, разберем их возможности, ограничения и то, что действительно доступно бесплатно. Бонус: сборник из 30 идей для вайбкодинга, доступ к закрытой базе ИИ-решений и гайды по установке китайских ИИ из РФ. Бесплатная регистрация по ссылке.

Задача: 42. Trapping Rain Water Сложность: hard Дано n неотрицательных целых чисел, представляющих карту высот, где ширина ка
Задача: 42. Trapping Rain Water Сложность: hard Дано n неотрицательных целых чисел, представляющих карту высот, где ширина каждого столбца равна 1. Вычислите, сколько воды он может удержать после дождя. Пример: Input: height = [0,1,0,2,1,0,1,3,2,1,2,1] Output: 6 👨‍💻 Алгоритм: 1️⃣Найдите максимальную высоту столбца с левого конца до индекса i в массиве left_max. 2️⃣Найдите максимальную высоту столбца с правого конца до индекса i в массиве right_max. 3️⃣Итерируйте по массиву высот height и обновляйте ans: добавьте min(left_max[i], right_max[i]) - height[i] к ans. 😎 Решение: var trap = function (height) { if (height.length == 0) return 0; let ans = 0; let size = height.length; let left_max = new Array(size).fill(0), right_max = new Array(size).fill(0); left_max[0] = height[0]; for (let i = 1; i < size; i++) { left_max[i] = Math.max(height[i], left_max[i - 1]); } right_max[size - 1] = height[size - 1]; for (let i = size - 2; i >= 0; i--) { right_m

Спиздила у @theaftertimes он разрешил! JavaScript // чат
Спиздила у @theaftertimes он разрешил! JavaScript // чат

Задача: 30. Substring with Concatenation of All Words Сложность: hard Дана строка s и массив строк words, где все слова одина
Задача: 30. Substring with Concatenation of All Words Сложность: hard Дана строка s и массив строк words, где все слова одинаковой длины. Нужно вернуть все начальные индексы подстрок в s, которые являются конкатенацией всех слов из массива words в любой перестановке. Слова не могут быть разделены, повторения допустимы. Пример: Input: s = "barfoothefoobarman", words = ["foo","bar"] Output: [0,9] 👨‍💻 Алгоритм: 1️⃣ Вычисляем: - len — длина одного слова - windowSize — общее число символов в одной перестановке всех слов - Если s.length < windowSize, возвращаем [] 2️⃣ Заполняем Map m, где ключ — слово из words, значение — количество его вхождений 3️⃣ Двигаемся по строке s посимвольно: - Для каждого индекса start проверяем, является ли подстрока от start длины windowSize валидной комбинацией слов из m - Для проверки используем isConcat() 😎 Решение: var findSubstring = function(s, words) { const len = words[0].length; const windowSize = words.length * len; if (s.length < wi

Начнем попозже закончим пораньше JavaScript // чат
Начнем попозже закончим пораньше JavaScript // чат

Треш каждый раз одно и то же JavaScript // чат
Треш каждый раз одно и то же JavaScript // чат

бизнестрендс — легендарный агрегатор всего, что происходит в бизнесе и маркетинге прямо сейчас. Оперативные новости, вдумчивая аналитика и щепотка мемчиков. Что задумал Альтман со своей OpenAI, когда грянет страшный кризис, расцветёт ли российская экономика, что на завтрак у Германа Грефа и какие приколы сейчас в почёте у СММщиков. Изнанку трендов и бизнеса транслируют тут: @business_trends

Задача: 730. Count Different Palindromic Subsequences Сложность: hard Поскольку ответ может быть очень большим, верните его по модулю 109 + 7. Подпоследовательность строки получается путем удаления из нее нуля или более символов. Последовательность является палиндромной, если она равна последовательности, обращенной назад. Две последовательности a1, a2, ... и b1, b2, ... различны, если существует некоторое i, для которого ai != bi. Пример: Input: s = "bccb" Output: 6 👨‍💻 Алгоритм: 1⃣Используйте динамическое программирование для подсчета количества палиндромных подпоследовательностей. 2⃣Введите двумерный массив dp, где dp[i][j] представляет количество палиндромных подпоследовательностей в подстроке от i до j. 3⃣Итерируйте по длине подстрок от 1 до длины строки и обновляйте значения в dp на основе состояния предыдущих подстрок. 😎 Решение: var countPalindromicSubsequences = function(s) { const MOD = 10**9 + 7; const n = s.length; const dp = Array.from({ length: n }, () => Array(n).fill(0)); for (let i = 0; i < n; i++) { dp[i][i] = 1; } for (let length = 2; length <= n; length++) { for (let i = 0; i <= n - length; i++) { const j = i + length - 1; if (s[i] === s[j]) { let l = i + 1, r = j - 1; while (l <= r && s[l] !== s[i]) l++; while (l <= r && s[r] !== s[j]) r--; if (l > r) { dp[i][j] = dp[i + 1][j - 1] * 2 + 2; } else if (l === r) { dp[i][j] = dp[i + 1][j - 1] * 2 + 1; } else { dp[i][j] = dp[i + 1][j - 1] * 2 - dp[l + 1][r - 1]; } } else { dp[i][j] = dp[i + 1][j] + dp[i][j - 1] - dp[i + 1][j - 1]; } dp[i][j] = (dp[i][j] + MOD) % MOD; } } return dp[0][n - 1]; }; JavaScript // чат

Задача: 559. Maximum Depth of N-ary Tree Сложность: easy Дано n-арное дерево, найдите его максимальную глубину. Максимальная
Задача: 559. Maximum Depth of N-ary Tree Сложность: easy Дано n-арное дерево, найдите его максимальную глубину. Максимальная глубина - это количество узлов вдоль самого длинного пути от корневого узла до самого дальнего листового узла. Сериализация ввода n-арного дерева представлена в порядке уровня, каждая группа дочерних узлов разделена значением null (см. примеры). Пример: Input: root = [1,null,3,2,4,null,5,6] Output: 3 👨‍💻 Алгоритм: 1⃣Интуитивный подход заключается в решении задачи с помощью рекурсии. 2⃣Здесь мы демонстрируем пример с использованием стратегии поиска в глубину (DFS - Depth First Search). 3⃣Применяя DFS, проходим через все узлы дерева, вычисляя максимальную глубину. 😎 Решение: class Solution { maxDepth(root) { if (root === null) { return 0; } else if (root.children.length === 0) { return 1; } else { let heights = root.children.map(child => this.maxDepth(child)); return Math.max(...heights) + 1; }

Задача: 919. Complete Binary Tree Inserter Сложность: medium Полное двоичное дерево - это двоичное дерево, в котором каждый уровень, кроме, возможно, последнего, полностью заполнен, а все узлы расположены как можно дальше влево. Разработайте алгоритм вставки нового узла в полное двоичное дерево, сохраняя его полным после вставки. Реализуйте класс CBTInserter: CBTInserter(TreeNode root) Инициализирует структуру данных корнем полного бинарного дерева. int insert(int v) Вставляет TreeNode в дерево со значением Node.val == val так, что дерево остается полным, и возвращает значение родителя вставленного TreeNode. TreeNode get_root() Возвращает корневой узел дерева. Пример: Input ["CBTInserter", "insert", "insert", "get_root"] [[[1, 2]], [3], [4], []] Output [null, 1, 2, [1, 2, 3, 4]] 👨‍💻 Алгоритм: 1⃣Инициализация: Проход по дереву и добавление всех узлов в очередь, чтобы отслеживать узлы, у которых есть хотя бы одно пустое место для нового дочернего узла. 2⃣Вставка: Добавление нового узла в первое доступное место слева направо. 3⃣Возвращение корня: Просто возвращает корневой узел. 😎 Решение: class TreeNode { constructor(val = 0, left = null, right = null) { this.val = val; this.left = left; this.right = right; } } class CBTInserter { constructor(root) { this.root = root; this.deque = []; const queue = [root]; while (queue.length > 0) { const node = queue.shift(); if (!node.left || !node.right) { this.deque.push(node); } if (node.left) { queue.push(node.left); } if (node.right) { queue.push(node.right); } } } insert(v) { const node = this.deque[0]; const newNode = new TreeNode(v); if (!node.left) { node.left = newNode; } else { node.right = newNode; this.deque.shift(); } this.deque.push(newNode); return node.val; } get_root() { return this.root; } } JavaScript // чат

АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны к
АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков: • Практические курсы и задания • Книги и статьи известных авторов • Полезные инструменты и ресурсы • IT-новости и инсайды Обучение по всем направлениям: SQL, Python, ML, Frontend, PHP, C++, Go, Git, Linux, QA, Java, Vibe-coding, InfoSec и др. ⌨️ подписаться

Задача: 561. Array Partition Сложность: easy Дан массив целых чисел nums из 2n элементов. Разделите эти числа на n пар (a1, b1), (a2, b2), ..., (an, bn) так, чтобы сумма min(ai, bi) для всех i была максимальной. Верните максимальную сумму. Пример: Input: nums = [1,4,3,2] Output: 4 Explanation: All possible pairings (ignoring the ordering of elements) are: 1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3 2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3 3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4 So the maximum possible sum is 4. 👨‍💻 Алгоритм: 1⃣Отсортируйте массив nums в неубывающем порядке. 2⃣Итерируйте через массив, выбирая каждый второй элемент (начиная с первого). 3⃣Суммируйте выбранные элементы и верните эту сумму. 😎 Решение: class Solution { arrayPairSum(nums) { nums.sort((a, b) => a - b); let sum = 0; for (let i = 0; i < nums.length; i += 2) { sum += nums[i]; } return sum; } } JavaScript // чат

⚡️ 5 000 ₽ — столько приносит одна сделка В день доступно 3-5 готовых сделок. Их находит ИИ и проверяют аналитики. От тебя —
⚡️ 5 000 ₽ — столько приносит одна сделка В день доступно 3-5 готовых сделок. Их находит ИИ и проверяют аналитики. От тебя — только повторить под сопровождением трейдеров. ❗️Можно без опыта и анализа графика, нужен телефон, обучение и час времени. Мы живём в эпоху, когда искусственный интеллект делает большую часть работы за нас, НО НЕ ВСЮ! И чтобы понять, как это работает — заходи в канал к Дмитрию. Все инструкции и доступ к ИИ-агенту внутри. Заходите, пока набор открыт 👉 https://telegram.me/+mNCup1xVf21iOTIy