fa
Feedback
Java | LeetCode

Java | LeetCode

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

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

نمایش بیشتر
6 527
مشترکین
-224 ساعت
-197 روز
-4830 روز
آرشیو پست ها
Задача: 462. Minimum Moves to Equal Array Elements II Сложность: medium Дан массив целых чисел nums размера n, вернуть минимальное количество ходов, необходимых для того, чтобы сделать все элементы массива равными. В одном ходе вы можете увеличить или уменьшить элемент массива на 1. Тестовые случаи составлены так, что ответ поместится в 32-битное целое число. Пример:
Input: nums = [1,2,3]
Output: 2
Explanation:
Only two moves are needed (remember each move increments or decrements one element):
[1,2,3]  =>  [2,2,3]  =>  [2,2,2]
👨‍💻 Алгоритм: 1⃣Найти минимальный и максимальный элементы в массиве. Пусть k будет числом, к которому должны быть приведены все элементы массива. 2⃣Перебирать значения k в диапазоне между минимальным и максимальным элементами, вычисляя количество ходов, необходимых для каждого k. 3⃣Определить минимальное количество ходов среди всех возможных k, что и будет конечным результатом. 😎 Решение:
public class Solution {
    public int minMoves2(int[] nums) {
        long ans = Long.MAX_VALUE;
        int minval = Integer.MAX_VALUE;
        int maxval = Integer.MIN_VALUE;
        for (int num : nums) {
            minval = Math.min(minval, num);
            maxval = Math.max(maxval, num);
        }
        for (int i = minval; i <= maxval; i++) {
            long sum = 0;
            for (int num : nums) {
                sum += Math.abs(num - i);
            }
            ans = Math.min(ans, sum);
        }
        return (int) ans;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Директ возвращает 10% бюджета за рекламу в мессенджерах Запускайте кампании в Telegram и МАКС с 1 июня по 31 августа — получа
Директ возвращает 10% бюджета за рекламу в мессенджерах Запускайте кампании в Telegram и МАКС с 1 июня по 31 августа — получайте кешбэк 10%. Его можно потратить на новые кампании. 💰 Как получить кешбэк: — Заполните форму: укажите логин в Директе и что продвигаете (сайт или канал); — Запустите рекламу в МАКС, Telegram или сразу на двух площадках с оплатой за клики; — В сентябре начислим кешбэк. Получить предложение #реклама yandex.ru О рекламодателе

Задача: 1328. Break a Palindrome Сложность: medium Дана палиндромная строка из строчных английских букв palindrome. Замените ровно один символ на любую строчную английскую букву так, чтобы результирующая строка не была палиндромом и чтобы она была лексикографически наименьшей из возможных. Верните получившуюся строку. Если нет способа заменить символ, чтобы строка перестала быть палиндромом, верните пустую строку. Строка a лексикографически меньше строки b (одинаковой длины), если в первой позиции, где они отличаются, у строки a символ строго меньше соответствующего символа в строке b. Например, "abcc" лексикографически меньше "abcd", потому что первой различающейся позицией является четвертая, и 'c' меньше, чем 'd'. Пример:
Input: palindrome = "abccba"
Output: "aaccba"
Explanation: There are many ways to make "abccba" not a palindrome, such as "zbccba", "aaccba", and "abacba".
Of all the ways, "aaccba" is the lexicographically smallest.
👨‍💻 Алгоритм: 1⃣Если длина строки равна 1, верните пустую строку, так как невозможно создать непалиндромическую строку в этом случае. 2⃣Итерируйтесь по строке слева до середины строки: если символ не равен 'a', измените его на 'a' и верните строку. 3⃣Если вы прошли всю левую часть строки и все еще не получили непалиндромическую строку, это означает, что строка состоит только из 'a'. Следовательно, измените последний символ на 'b' и верните полученную строку. 😎 Решение:
class Solution {
    public String breakPalindrome(String palindrome) {
        int length = palindrome.length();
        
        if (length == 1) {
            return "";
        }
        
        char[] palindromeArray = palindrome.toCharArray();
        for (int i = 0; i < length / 2; i++) {
            if (palindromeArray[i] != 'a') {
                palindromeArray[i] = 'a';
                return new String(palindromeArray);
            }
        }
        
        palindromeArray[length - 1] = 'b';
        return new String(palindromeArray);
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Больше выгоды с подпиской Kaspersky Premium Купите подписку Kaspersky Premium сейчас и получите скидку до 28%, гарантированны
Больше выгоды с подпиской Kaspersky Premium Купите подписку Kaspersky Premium сейчас и получите скидку до 28%, гарантированные призы от наших партнёров, а также шанс выиграть путешествие! Узнать больше #реклама 16+ kaspersky.ru О рекламодателе

Просто показываем промокод Просто предлагаем съездить отдохнуть со скидкой 5000 рублей от Яндекс Путешествий. Больше ничего о
Просто показываем промокод Просто предлагаем съездить отдохнуть со скидкой 5000 рублей от Яндекс Путешествий. Больше ничего от вас не хотим, потому что понимаем, что сил нет. Забронировать #реклама travel.yandex.ru О рекламодателе

Задача: 438. Find All Anagrams in a String Сложность: medium Даны две строки s и p, вернуть массив всех начальных индексов анаграмм строки p в строке s. Ответ можно вернуть в любом порядке. Анаграмма - это слово или фраза, образованные перестановкой букв другого слова или фразы, обычно с использованием всех исходных букв ровно один раз. Пример:
Input: s = "cbaebabacd", p = "abc"
Output: [0,6]
Explanation:
The substring with start index = 0 is "cba", which is an anagram of "abc".
The substring with start index = 6 is "bac", which is an anagram of "abc".
👨‍💻 Алгоритм: 1⃣Построить эталонный счетчик pCount для строки p. 2⃣Передвигать скользящее окно по строке s: Пересчитывать счетчик скользящего окна sCount на каждом шаге, добавляя одну букву справа и удаляя одну букву слева. 3⃣Если sCount == pCount, обновить выходной список. Вернуть выходной список. 😎 Решение:
class Solution {
    public List<Integer> findAnagrams(String s, String p) {
        int ns = s.length(), np = p.length();
        if (ns < np) return new ArrayList<>();

        Map<Character, Integer> pCount = new HashMap<>();
        Map<Character, Integer> sCount = new HashMap<>();

        for (char ch : p.toCharArray()) {
            pCount.put(ch, pCount.getOrDefault(ch, 0) + 1);
        }

        List<Integer> output = new ArrayList<>();

        for (int i = 0; i < ns; ++i) {
            char ch = s.charAt(i);
            sCount.put(ch, sCount.getOrDefault(ch, 0) + 1);

            if (i >= np) {
                ch = s.charAt(i - np);
                if (sCount.get(ch) == 1) {
                    sCount.remove(ch);
                } else {
                    sCount.put(ch, sCount.get(ch) - 1);
                }
            }

            if (pCount.equals(sCount)) {
                output.add(i - np + 1);
            }
        }
        return output;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Утраиваем бюджет на продвижение в Директе Запустите первое продвижение в Яндекс Директе с утроенным бюджетом и ИИ-помощником
Утраиваем бюджет на продвижение в Директе Запустите первое продвижение в Яндекс Директе с утроенным бюджетом и ИИ-помощником ✨ Используйте один из промокодов : При пополнении от 10 000 ₽ +20 000 ₽ Промокод START20 При пополнении от 15 000 ₽ +30 000 ₽ Промокод START30 Зарегистрироваться #реклама direct.yandex.ru О рекламодателе

Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполни
Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполнили — получили свои деньги. Деньги вы получаете в зависимости от сложности задания. Например: За задание могут платить 500-10.000 рублей. В зависимости от сложности. 500 рублей — это около 5-30 минут. 10 000 руб. это 5-6 часов. Работа может быть разной: Оживить фото, создать видео, реставрировать старое фото и т.д. 💰 В среднем новичок получает до 150.000 руб в месяц. А опытный может и 300-500т. Мы обучим вас сами: — 3 дня уроков по 30 минут — Домашки с проверкой ⚡ Набор заканчивается завтра. Для регистрации жмите кнопку "Зарегистрироваться": Зарегистрироваться #реклама 16+ neuromachina.ru О рекламодателе

Кешбэк 10% за рекламу в МАКС и Telegram через Директ Инвестируйте в продвижение в Telegram, МАКС или на обеих площадках 100 0
Кешбэк 10% за рекламу в МАКС и Telegram через Директ Инвестируйте в продвижение в Telegram, МАКС или на обеих площадках 100 000 ₽ и больше через Директ — вернём часть бюджета на следующие кампании. Для участия заполните форму: укажите, что продвигаете, на каком логине и куда прислать условия. Акция действует с 1 июня по 31 августа. Получить предложение #реклама yandex.ru О рекламодателе

Откликаешься на вакансии по Java и тишина? Спешу тебя обрадовать или разочаровать... Твоё резюме даже не дошло до живого эйча
Откликаешься на вакансии по Java и тишина? Спешу тебя обрадовать или разочаровать... Твоё резюме даже не дошло до живого эйчара, его отсеивают автофильтры на хх.ру Рынок IT изменился, но большинство продолжают искать работу как в 2021-м) Поэтому и сидят без офферов💀 Я Андрей, сеньор Java-разработчик из Сбера И я записал бесплатный видео-гайд о том, как получить оффер на 200–250к в 2026 году В этом видео ты узнаешь 👇 🔹 Каким стеком нужно владеть, чтобы тебя вообще начали рассматривать 🔹 Что должно быть в твоём резюме, чтобы пройти автофильтры на хх.ру 🔹 Как не провалить собес и запомниться эйчару Ссылку на видео оставил в своём телеграм-канале в посте Кликай и забирай ▶️ ВИДЕО-ГАЙД ◀️ ▶️ ВИДЕО-ГАЙД ◀️ ▶️ ВИДЕО-ГАЙД ◀️

Эксперт, как зарабатывать предсказуемо без контента 24/7 Я вела экспертный блог несколько лет и была уверена: хочешь больше к
Эксперт, как зарабатывать предсказуемо без контента 24/7 Я вела экспертный блог несколько лет и была уверена: хочешь больше клиентов и — выдавай больше контента. Сторис. Эфиры. Видео. И так без выходных. Я выгорала. Но клиенты то были, то исчезали. Я думала: зачем мне всё это, если я впахиваю больше, чем в найме? Всё поменялось, когда я нашла простую систему для микроблога. Я начинала со 100 подписчиков и уже через год вышла на 12 млн в месяц. Без постоянных съёмок и огромной командыкоманды. Всю систему я разложила в бесплатном разборе — с примерами даже на блоге в 500 человек. Смотри по кнопке ниже Узнать больше #реклама 16+ mariesuhorukih.chatium.ru О рекламодателе

Хайлоад: производительность и планирование мощностей Приглашаем на практический курс для Middle/Senior-разработчиков, техлидо
Хайлоад: производительность и планирование мощностей Приглашаем на практический курс для Middle/Senior-разработчиков, техлидов, архитекторов, EM и CTO, которые хотят не просто “знать про хайлоад”, а руками разобраться, как работают производительность, нагрузочное тестирование и масштабирование. Будем выжимать 20–100K RPS из своих сервисов на своей инфраструктуре, строить latency/RPS-диаграммы, искать ограничения в стеке и использовать эти данные для capacity planning. В программе: Linux-инфраструктура, nginx, Prometheus/Grafana, нагрузочное тестирование через wrkx, тюнинг производительности, планирование мощностей. Вас жду живые онлайн-сессии и практические домашние задания, в ходе которых вы прокачаетесь в вопросах хайлоада, инфраструктуры и переосмыслите архитектурные подходы в более прагматичном, экономичном и инженерном ключе. 📌 Старт потока 13 июля. Кто мы: R&D-центр Devhands, основатель и автор курса Алексей Рыбак, ex-СТО Badoo и Yum! Brands, член программного комитета Highload. Изучайте программу и записывайтесь. Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzquZx6p5

Spring AI: изображение - JSON за пару строк кода! Автоматизируйте ввод данных из документов — освойте Spring AI на открытом у
Spring AI: изображение - JSON за пару строк кода! Автоматизируйте ввод данных из документов — освойте Spring AI на открытом уроке! Узнать больше #реклама 16+ otus.ru О рекламодателе

Spring AI: как превратить изображение документа в JSON Избегайте ошибок при парсинге: узнайте, как Spring AI точно извлекает
Spring AI: как превратить изображение документа в JSON Избегайте ошибок при парсинге: узнайте, как Spring AI точно извлекает JSON Узнать больше #реклама 16+ otus.ru О рекламодателе

Задача: 989. Add to Array-Form of Integer Сложность: easy Массивная форма целого числа num - это массив, представляющий его цифры в порядке слева направо. Например, для num = 1321, массивная форма - это [1, 3, 2, 1]. Дано num в массивной форме целого числа и целое число k, верните массивную форму числа num + k. Пример:
Input: num = [1,2,0,0], k = 34
Output: [1,2,3,4]
Explanation: 1200 + 34 = 1234
👨‍💻 Алгоритм: 1⃣Инициализация переменных: Преобразуйте число k в массив его цифр и переверните оба массива (массив num и массив цифр k). Завести переменную carry для хранения переноса и инициализировать ее нулем. Создать пустой массив result для хранения результата. 2⃣Сложение массивов: Пройдите по элементам массивов num и цифр k, начиная с их конца, сложите соответствующие цифры вместе с переносом (carry). Если сумма больше 9, сохраните последнюю цифру в текущей позиции результата, а carry установите в 1. Если сумма меньше 10, установите carry в 0. Добавьте результат текущего сложения в массив result 3⃣Обработка оставшихся цифр и переноса: Если один из массивов закончился раньше, продолжайте сложение оставшихся цифр другого массива с переносом. Если после окончания всех сложений остается перенос (carry), добавьте его в начало массива result. Переверните массив result обратно и верните его. 😎 Решение:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Solution {
    public List<Integer> addToArrayForm(int[] num, int k) {
        List<Integer> result = new ArrayList<>();
        int n = num.length;

        for (int i = n - 1; i >= 0; i--) {
            k += num[i];
            result.add(k % 10);
            k /= 10;
        }
        while (k > 0) {
            result.add(k % 10);
            k /= 10;
        }
        Collections.reverse(result);
        return result;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Стоит ли учить Java в 2026: куда движется язык Приглашаем на открытый урок. 📅 16 июля в 20:00 МСК 👌 Бесплатно. Урок в рамка
Стоит ли учить Java в 2026: куда движется язык Приглашаем на открытый урок. 📅 16 июля в 20:00 МСК 👌 Бесплатно. Урок в рамках старта курса «Java-разработчик». Программа урока: - Развенчиваем главный миф новичка: правда ли, что «Java умерла» и всем надо идти в Python или Go - Где Java реально работает в 2026: банки, финтех, маркетплейсы, стриминги с миллионами пользователей, логистика - Big Data на JVM: почему Kafka, Spark и Hadoop написаны на Java и зачем это знать даже питонисту - Куда движется язык: релизы каждые полгода, борьба с многословностью, нативная компиляция (GraalVM), связка с AI - Карьера джависта: зарплаты, стабильность и почему этот язык — фундамент для долгого пути в IT Узнать больше #реклама 16+ otus.ru О рекламодателе

Задача: 916. Word Subsets Сложность: medium Вам даны два массива строк words1 и words2. Строка b является подмножеством строки a, если каждая буква в b встречается в ней, включая кратность. Например, "wrr" является подмножеством "warrior", но не является подмножеством "world". Строка a из words1 является универсальной, если для каждой строки b в words2, b является подмножеством a. Верните массив всех универсальных строк в words1. Вы можете вернуть ответ в любом порядке. Пример:
Input: words1 = ["amazon","apple","facebook","google","leetcode"], words2 = ["e","o"]
Output: ["facebook","google","leetcode"]
👨‍💻 Алгоритм: 1⃣Подсчитать максимальное количество каждой буквы в каждом слове из words2. 2⃣Проверить каждое слово из words1, если оно содержит не менее максимального количества каждой буквы, которая встречается в словах из words2. 3⃣Вернуть массив слов из words1, которые удовлетворяют этому условию. 😎 Решение:
import java.util.*;

class Solution {
    public List<String> wordSubsets(String[] words1, String[] words2) {
        int[] maxCount = new int[26];
        for (String word : words2) {
            int[] count = getCount(word);
            for (int i = 0; i < 26; i++) {
                maxCount[i] = Math.max(maxCount[i], count[i]);
            }
        }

        List<String> result = new ArrayList<>();
        for (String word : words1) {
            int[] count = getCount(word);
            if (isUniversal(count, maxCount)) {
                result.add(word);
            }
        }
        
        return result;
    }

    private int[] getCount(String word) {
        int[] count = new int[26];
        for (char c : word.toCharArray()) {
            count[c - 'a']++;
        }
        return count;
    }

    private boolean isUniversal(int[] count, int[] maxCount) {
        for (int i = 0; i < 26; i++) {
            if (count[i] < maxCount[i]) {
                return false;
            }
        }
        return true;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

QA Lead: снижаем риски неверных сроков Вы узнаете принципы оценки трудозатрат и инструменты планирования. Сможете управлять с
QA Lead: снижаем риски неверных сроков Вы узнаете принципы оценки трудозатрат и инструменты планирования. Сможете управлять сроками релизов. Регистрируйтесь! Узнать больше #реклама 16+ otus.ru О рекламодателе

АЙТИШНИКИ, ХВАТИТ сливать время на прилизанные новости и бесполезные курсы Проект «ИИнтеллигенция» стал главным каналом для т
АЙТИШНИКИ, ХВАТИТ сливать время на прилизанные новости и бесполезные курсы Проект «ИИнтеллигенция» стал главным каналом для тех, кто использует нейросети на уровне разработки, автоматизации и опенсорса, а не просто балуется в чатах. Здесь собирают только то, что реально экономит человеко-часы и работает в проде. 🎓 Готовые ИИ-сервисы, промпты и ИИ-агенты для автоматизации рутины 📚 Разборы полезных ИИ-инструментов, локальных LLM и опенсорс-репозиториев 🛠 Практические кейсы, гайды по деплою моделей и интеграции ИИ в пайплайны ⚡️ Технические ИТ-новости без маркетинговой воды и душных отчетов Обучение и прокачка в реальном времени: работа с API (Claude, GPT), локалки (Ollama, vLLM), автоматизация кода, опенсорс-утилиты, AI-агенты и др. Ценишь время и работаешь с ИИ, подпишись: @clucai

Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполни
Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполнили — получили свои деньги. Деньги вы получаете в зависимости от сложности задания. Например: За задание могут платить 500-10.000 рублей. В зависимости от сложности. 500 рублей — это около 5-30 минут. 10 000 руб. это 5-6 часов. Работа может быть разной: Оживить фото, создать видео, реставрировать старое фото и т.д. 💰 В среднем новичок получает до 150.000 руб в месяц. А опытный может и 300-500т. Мы обучим вас сами: — 3 дня уроков по 30 минут — Домашки с проверкой ⚡ Набор заканчивается завтра. Для регистрации жмите кнопку "Зарегистрироваться": Зарегистрироваться #реклама 16+ neuromachina.ru О рекламодателе