uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

Java | LeetCode

Java | LeetCode

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
6 391
Obunachilar
-924 soatlar
-217 kun
-6230 kun
Obunachilarni jalb qilish
Okt '26
Oktabr '26
+29
0 kanalda
Sentabr '26
+29
0 kanalda
Get PRO
Avgust '26
+27
0 kanalda
Get PRO
Iyul '26
+33
0 kanalda
Get PRO
Iyun '26
+42
1 kanalda
Get PRO
May '26
+33
0 kanalda
Get PRO
Aprel '26
+36
0 kanalda
Get PRO
Mart '26
+44
0 kanalda
Get PRO
Fevral '26
+49
0 kanalda
Get PRO
Yanvar '26
+54
1 kanalda
Get PRO
Dekabr '25
+47
0 kanalda
Get PRO
Noyabr '25
+98
0 kanalda
Get PRO
Oktabr '25
+98
0 kanalda
Get PRO
Sentabr '25
+101
1 kanalda
Get PRO
Avgust '25
+164
2 kanalda
Get PRO
Iyul '25
+176
3 kanalda
Get PRO
Iyun '25
+139
0 kanalda
Get PRO
May '25
+190
2 kanalda
Get PRO
Aprel '25
+219
0 kanalda
Get PRO
Mart '25
+264
1 kanalda
Get PRO
Fevral '25
+358
6 kanalda
Get PRO
Yanvar '25
+362
53 kanalda
Get PRO
Dekabr '24
+221
0 kanalda
Get PRO
Noyabr '24
+249
0 kanalda
Get PRO
Oktabr '24
+478
12 kanalda
Get PRO
Sentabr '24
+1 577
330 kanalda
Get PRO
Avgust '24
+291
0 kanalda
Get PRO
Iyul '24
+1 602
219 kanalda
Get PRO
Iyun '24
+2 260
232 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
28 Oktabr0
27 Oktabr0
26 Oktabr+2
25 Oktabr+1
24 Oktabr0
23 Oktabr+3
22 Oktabr0
21 Oktabr0
20 Oktabr+2
19 Oktabr0
18 Oktabr+2
17 Oktabr+1
16 Oktabr+1
15 Oktabr0
14 Oktabr+2
13 Oktabr+1
12 Oktabr0
11 Oktabr+2
10 Oktabr+1
09 Oktabr+3
08 Oktabr+1
07 Oktabr+1
06 Oktabr+1
05 Oktabr+1
04 Oktabr+1
03 Oktabr+2
02 Oktabr0
01 Oktabr+1
Kanal postlari
Задача: 397. Integer Replacement Сложность: medium К положительному целому числу n можно применить одну из следующих операций: если n четное, замените n на n / 2. если n нечетное, замените n на n + 1 или n - 1. верните минимальное количество операций, необходимых для того, чтобы n стало 1. Пример:
Input: n = 8
Output: 3
Explanation: 8 -> 4 -> 2 -> 1
👨‍💻 Алгоритм: 1⃣Начните с данного числа n и выполните одну из следующих операций: Если n четное, замените n на n / 2. Если n нечетное, замените n на n + 1 или n - 1. 2⃣Используйте метод динамического программирования или жадный метод, чтобы найти минимальное количество операций, необходимых для достижения n = 1. Определите, какая операция (n + 1 или n - 1) является более эффективной для минимизации количества шагов. 3⃣Продолжайте выполнять выбранные операции, пока n не станет равным 1. Считайте количество выполненных операций и верните это значение как результат. 😎 Решение:
class Solution {
    public int integerReplacement(int n) {
        Map<Long, Integer> memo = new HashMap<>();
        return helper(n, memo);
    }
    
    private int helper(long n, Map<Long, Integer> memo) {
        if (n == 1) return 0;
        if (memo.containsKey(n)) return memo.get(n);
        
        if (n % 2 == 0) {
            memo.put(n, 1 + helper(n / 2, memo));
        } else {
            memo.put(n, 1 + Math.min(helper(n + 1, memo), helper(n - 1, memo)));
        }
        
        return memo.get(n);
    }
}
Ставь 👍 и забирай 📚 Базу знаний

2
Я.Практикум: ИИ-тренинг с выездом экспертов в ваш офис ✨ Чтобы закрывать больше задач с меньшими ресурсами, нужна «суперсила»
Я.Практикум: ИИ-тренинг с выездом экспертов в ваш офис ✨ Чтобы закрывать больше задач с меньшими ресурсами, нужна «суперсила». Обучайте сотрудников ИИ, чтобы автоматизировать операционные задачи и ускорить ключевые процессы. Выберите формат, который подходит именно вашей команде: ✅ Базовый ИИ. Закладываем фундамент ✅ ИИ под роль. Навыки для конкретных функций и специалистов: руководители, продукт и аналитика, маркетинг и продажи, HR и L&D, операционные команды. ✅ ИИ-трансформация. Для компаний, которые хотят внедрять нейросети системно. ✅ ИИ-агенты. Для команд, которые хотят собирать собственных ИИ-агентов: от основ генеративного ИИ до рабочего прототипа без программирования. Библиотека ИИ-навыков для команды — бесплатно при покупке любой программы ИИ-тренингов до конца сентября Узнать больше #реклама 16+ practicum.yandex.ru О рекламодателе
254
3
Задача: 284. Peeking Iterator Сложность: medium Создайте итератор, который поддерживает операцию peek (просмотр следующего элемента) на существующем итераторе, помимо операций hasNext (проверка наличия следующего элемента) и next (получение следующего элемента). Реализуйте класс PeekingIterator: PeekingIterator(Iterator<int> nums): Инициализирует объект с заданным итератором целых чисел. int next(): Возвращает следующий элемент в массиве и перемещает указатель на следующий элемент. boolean hasNext(): Возвращает true, если в массиве еще есть элементы. int peek(): Возвращает следующий элемент в массиве без перемещения указателя. Пример: Input ["PeekingIterator", "next", "peek", "next", "next", "hasNext"] [[[1, 2, 3]], [], [], [], [], []] Output [null, 1, 2, 2, 3, false] Explanation PeekingIterator peekingIterator = new PeekingIterator([1, 2, 3]); // [1,2,3] peekingIterator.next(); // return 1, the pointer moves to the next element [1,2,3]. peekingIterator.peek(); // return 2, the pointer does not move [1,2,3]. peekingIterator.next(); // return 2, the pointer moves to the next element [1,2,3] peekingIterator.next(); // return 3, the pointer moves to the next element [1,2,3] peekingIterator.hasNext(); // return False 👨‍💻 Алгоритм: 1⃣Инициализация итератора: В конструкторе класса PeekingIterator инициализируйте итератор и проверьте, есть ли следующий элемент. Если есть, установите его как next, иначе установите next в null. 2⃣Операция peek: Метод peek возвращает значение next, не перемещая указатель итератора. 3⃣Операции next и hasNext: Метод next возвращает текущее значение next, обновляет next к следующему элементу в итераторе и перемещает указатель итератора. Если нет следующего элемента, бросает исключение NoSuchElementException. Метод hasNext возвращает true, если next не равно null, и false в противном случае. 😎 Решение: import java.util.Iterator; import java.util.NoSuchElementException; class PeekingIterator implements Iterator<Integer> { private Iterator<Integer> iter; private Integer next = null; public PeekingIterator(Iterator<Integer> iterator) { if (iterator.hasNext()) { next = iterator.next(); } iter = iterator; } public Integer peek() { return next; } @Override public Integer next() { if (next == null) { throw new NoSuchElementException(); } Integer toReturn = next; next = null; if (iter.hasNext()) { next = iter.next(); } return toReturn; } @Override public boolean hasNext() { return next != null; } } Ставь 👍 и забирай 📚 Базу знаний
229
4
Задача: 1360. Number of Days Between Two Dates Сложность: easy Напишите программу для подсчета количества дней между двумя датами. Даты даны в виде строк в формате YYYY-MM-DD, как показано в примерах. Пример: Input: date1 = "2019-06-29", date2 = "2019-06-30" Output: 1 👨‍💻 Алгоритм: 1⃣Преобразование строк в даты: Используйте встроенные функции для преобразования строковых представлений дат в объекты дат. 2⃣Вычисление разницы в днях: Вычислите разницу между двумя объектами дат в днях. 3⃣Возвращение результата: Верните абсолютное значение разницы в днях для получения положительного числа. 😎 Решение: import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class Solution { public int daysBetweenDates(String date1, String date2) { LocalDate d1 = LocalDate.parse(date1); LocalDate d2 = LocalDate.parse(date2); return (int) Math.abs(ChronoUnit.DAYS.between(d1, d2)); } } Ставь 👍 и забирай 📚 Базу знаний
278
5
🎃 Хеллоуинская акция на easyoffer В честь Хеллоуина до 31 октября можно забрать PRO навсегда. Покупаешь один раз и пользуешь
🎃 Хеллоуинская акция на easyoffer В честь Хеллоуина до 31 октября можно забрать PRO навсегда. Покупаешь один раз и пользуешься всю жизнь 🍬Что внутри мешка с угощениями: – База вопросов и задач из собеседований – Примеры видео-ответов на вопросы – Записи реальных собеседований – Тренажёры «Проработка вопросов» и «Реальное собеседование» – Аналитика требований из вакансий – Автоотклики на вакансии 👉 Забрать PRO со скидкой 70%: https://easyoffer.ru/pro
315
6
Как зарабатывать на мобильной игре Как привлекать пользователей, работать с монетизацией и развивать мобильную игру в 2026 го
Как зарабатывать на мобильной игре Как привлекать пользователей, работать с монетизацией и развивать мобильную игру в 2026 году? Обсудим вместе с экспертами игровой индустрии России на RuStore Mobile GameDev Conf. 2 ноября, Москва + онлайн. Участие бесплатное, по регистрации Зарегистрироваться #реклама 16+ rustore.ru О рекламодателе
330
7
Задача: №16. 3Sum Closest Сложность: medium Учитывая целочисленный массив nums длины n и целочисленную target, найдите три целых числа в nums, сумма которых наиболее близка к target. Возвращается сумма этих трех чисел. Гарантируется, что существует ровно одно решение. Пример: Input: licensePlate = "1s3 PSt", words = ["step","steps","stripe","stepple"] Output: "steps" 👨‍💻 Алгоритм: 1⃣Отсортировать массив nums. 2⃣Для каждого элемента использовать два указателя: один в начале оставшегося массива, другой — в конце. 3⃣Обновлять текущую минимальную разницу и ближайшую сумму при необходимости, сдвигая указатели в зависимости от того, насколько текущая сумма отклоняется от target. 😎 Решение: class Solution { public int threeSumClosest(int[] nums, int target) { int n = nums.length; int closest = 0; int max = Integer.MAX_VALUE; Arrays.sort(nums); for(int i = 0; i < n - 2; i++) { int j = i + 1; int k = n - 1; while(j < k) { int sum = nums[i] + nums[j] + nums[k]; if(sum == target) return sum; else if(sum < target) j++; else k--; int diff = Math.abs(sum - target); if(diff < max) { max = diff; closest = sum; } } } return closest; } } Ставь 👍 и забирай 📚 Базу знаний
323
8
Braun — технологии для безупречного ухода ✨Оригинальные бритвы, триммеры и эпиляторы ✨ Точность, комфорт и стиль — вместе с B
Braun — технологии для безупречного ухода ✨Оригинальные бритвы, триммеры и эпиляторы ✨ Точность, комфорт и стиль — вместе с Braun Купить #реклама market.yandex.ru О рекламодателе
357
9
ОСАГО по подписке — без оплаты за год сразу Оформите ОСАГО один раз и забудьте о продлении. Кешбэк 100% за первый месяц Заказ
ОСАГО по подписке — без оплаты за год сразу Оформите ОСАГО один раз и забудьте о продлении. Кешбэк 100% за первый месяц Заказать Финансовые услуги оказывает: ПАО СК «Росгосстрах»,СПАО «Ингосстрах» и др.. #реклама care.yandex.ru О рекламодателе
324
10
Задача: 523. Continuous Subarray Sum Сложность: medium Дан целочисленный массив nums и целое число k. Верните true, если в nums есть хорошая подмассив, или false в противном случае. Хороший подмассив — это подмассив, который: имеет длину не менее двух, и сумма элементов подмассива является кратной k. Учтите: Подмассив — это непрерывная часть массива. Целое число x является кратным k, если существует целое число n такое, что x = n * k. Число 0 всегда является кратным k. Пример: Input: nums = [23,2,4,6,7], k = 6 Output: true Explanation: [2, 4] is a continuous subarray of size 2 whose elements sum up to 6. 👨‍💻 Алгоритм: 1⃣Инициализируйте целое число prefixMod = 0 и хеш-таблицу modSeen. Инициализируйте modSeen[0] значением -1, чтобы учесть начальное значение prefixMod. 2⃣Итеративно пройдите по всем элементам массива nums. 3⃣Вычислите prefixMod как (prefixMod + nums[i]) % k. Если prefixMod существует в хеш-таблице: Если размер самого длинного подмассива с модулем k составляет не менее 2, верните true. Если prefixMod не существует в хеш-таблице: Установите modSeen[prefixMod] = i. Если после завершения итерации не найден хороший подмассив, верните false. 😎 Решение: import java.util.HashMap; import java.util.Map; class Solution { public boolean checkSubarraySum(int[] nums, int k) { int prefixMod = 0; Map<Integer, Integer> modSeen = new HashMap<>(); modSeen.put(0, -1); for (int i = 0; i < nums.length; i++) { prefixMod = (prefixMod + nums[i]) % k; if (modSeen.containsKey(prefixMod)) { if (i - modSeen.get(prefixMod) > 1) { return true; } } else { modSeen.put(prefixMod, i); } } return false; } } Ставь 👍 и забирай 📚 Базу знаний
576
11
Услуги дата-центра в Москве Размещение и аренда серверного оборудования в дата-центре. 👍 4 современных дата-центра в Москве.
Услуги дата-центра в Москве Размещение и аренда серверного оборудования в дата-центре. 👍 4 современных дата-центра в Москве. 👍 Лицензированный оператор связи. 👍 Индивидуальные конфигурации выделенных серверов под задачи клиента. 👍 Круглосуточная техническая поддержка в Телеграм, без ботов. Узнать цену #реклама 16+ itsoft.ru О рекламодателе
356
12
🔥 Скрытые вакансии с удаленной работой для Java разработчика, которые нигде больше не публикуются. Напрямую от компаний, с к
🔥 Скрытые вакансии с удаленной работой для Java разработчика, которые нигде больше не публикуются. Напрямую от компаний, с контактами рекрутеров. 🔹 Java Jobs | Вакансии 🔸 Все каналы с вакансиями
487
13
Я.Практикум: ИИ-тренинг с выездом экспертов в ваш офис ✨ Чтобы закрывать больше задач с меньшими ресурсами, нужна «суперсила»
Я.Практикум: ИИ-тренинг с выездом экспертов в ваш офис ✨ Чтобы закрывать больше задач с меньшими ресурсами, нужна «суперсила». Обучайте сотрудников ИИ, чтобы автоматизировать операционные задачи и ускорить ключевые процессы. Выберите формат, который подходит именно вашей команде: ✅ Базовый ИИ. Закладываем фундамент ✅ ИИ под роль. Навыки для конкретных функций и специалистов: руководители, продукт и аналитика, маркетинг и продажи, HR и L&D, операционные команды. ✅ ИИ-трансформация. Для компаний, которые хотят внедрять нейросети системно. ✅ ИИ-агенты. Для команд, которые хотят собирать собственных ИИ-агентов: от основ генеративного ИИ до рабочего прототипа без программирования. Библиотека ИИ-навыков для команды — бесплатно при покупке любой программы ИИ-тренингов до конца сентября Узнать больше #реклама 16+ practicum.yandex.ru О рекламодателе
344
14
🔥 Почему ты получаешь отказ после «вроде норм собеса»? Дело не всегда в знаниях. Можно знать правильный ответ, но не понимат
🔥 Почему ты получаешь отказ после «вроде норм собеса»? Дело не всегда в знаниях. Можно знать правильный ответ, но не понимать, что именно хочет услышать интервьюер и как убедительно донести свою мысль. Чтобы помочь с этим, ребята из ШОРТКАТ собрали 50 сложных вопросов с Java-собеседований и ответы сильного кандидата. Они проанализировали более 100 мок-интервью и собрали в одном файле реальные вопросы и примеры ответов, на которые стоит ориентироваться при подготовке 🔥 🎁 Забирай файл бесплатно в боте 👉 @shortcut_sh_bot А заодно сможешь зарегистрироваться на бесплатное тестовое собеседование с Java-разработчиком! На эфире ты сможешь: → услышать, какие вопросы задают на собеседованиях в топовые компании; → посмотреть на интервью вживую; → лично задать вопросы ментору из бигтеха. Забирай материалы и используй возможность подготовиться к следующему собесу 👇 @shortcut_sh_bot Реклама. О рекламодателе.
323
15
Открытый урок: бизнес-логика в микросервисах Разработка в микросервисах — это не только разбиение на сервисы, но и грамотное
Открытый урок: бизнес-логика в микросервисах Разработка в микросервисах — это не только разбиение на сервисы, но и грамотное распределение логики. 22 октября в 19:00 мск — открытый урок для разработчиков и архитекторов. Узнаете, где должна жить бизнес-логика. Запишитесь! Зарегистрироваться #реклама 16+ otus.ru О рекламодателе
320
16
Получите удаленную подработку, где платят 5.000 ₽ в день Нужно заполнять карточки товаров на ВБ, писать описания товаров и от
Получите удаленную подработку, где платят 5.000 ₽ в день Нужно заполнять карточки товаров на ВБ, писать описания товаров и отвечать на отзывы. Все это вы делаете из дома. Бесплатная регистрация только сегодня! Опыт, знания и город — не важны! От вас требуется только телефон. Занятость 3-6 часов в день. График свободный. Заработок зависит от вас. Над вами нет никаких начальников. А самое важное, у вас не будет нужды просыпаться в 6 утра на работу. Для старта в профессии нужно пройти бесплатное 3х-дневное обучение: ✅ Прямые эфиры, где вы поймете суть профессии ✅ Домашки с проверкой и оплатой бонусами ✅ Платим 10 тыс за каждую выполненную домашку Все кто пройдет курс, получат сертификат от школы с образовательной лицензией. ⚡ Начинаем в понедельник! Жмите снизу "Зарегистрироваться": Зарегистрироваться #реклама 16+ course.wildcard.ru О рекламодателе
297
17
Задача: 745. Prefix and Suffix Search Сложность: hard Создайте специальный словарь, в котором поиск слов осуществляется по префиксу и суффиксу. Реализуйте класс WordFilter: WordFilter(string[] words) Инициализирует объект со словами в словаре. f(string pref, string suff) Возвращает индекс слова в словаре, которое имеет префикс pref и суффикс suff. Если существует более одного допустимого индекса, возвращается наибольший из них. Если в словаре нет такого слова, возвращается -1. Пример: Input: letters = ["c","f","j"], target = "a" Output: "c" 👨‍💻 Алгоритм: 1⃣Сохраните слова и их индексы в словаре. 2⃣Создайте объединенные ключи, состоящие из префиксов и суффиксов для всех возможных комбинаций. 3⃣Реализуйте функцию поиска, которая ищет наибольший индекс слова по префиксу и суффиксу. 😎 Решение: public class WordFilter { private Map<String, Integer> prefixSuffixMap = new HashMap<>(); public WordFilter(String[] words) { for (int index = 0; index < words.length; index++) { String word = words[index]; int length = word.length(); for (int prefixLength = 1; prefixLength <= length; prefixLength++) { for (int suffixLength = 1; suffixLength <= length; suffixLength++) { String prefix = word.substring(0, prefixLength); String suffix = word.substring(length - suffixLength); String key = prefix + "#" + suffix; prefixSuffixMap.put(key, index); } } } } public int f(String pref, String suff) { String key = pref + "#" + suff; return prefixSuffixMap.getOrDefault(key, -1); } } Ставь 👍 и забирай 📚 Базу знаний
533
18
Кольцо с бриллиантами MIUZ Diamonds – для момента, который запомнится навсегда Узнать больше #реклама miuz.ru О рекламодателе
Кольцо с бриллиантами MIUZ Diamonds – для момента, который запомнится навсегда Узнать больше #реклама miuz.ru О рекламодателе
261
19
Задача: 1431. Kids With the Greatest Number of Candies Сложность: easy Дано n детей с конфетами. Вам дан целочисленный массив candies, где каждый candies[i] представляет количество конфет у i-го ребенка, и целое число extraCandies, обозначающее количество дополнительных конфет, которые у вас есть. Вернуть булев массив result длиной n, где result[i] равно true, если, дав i-му ребенку все дополнительные конфеты, он будет иметь наибольшее количество конфет среди всех детей, или false в противном случае. Обратите внимание, что несколько детей могут иметь наибольшее количество конфет. Пример: Input: candies = [2,3,5,1,3], extraCandies = 3 Output: [true,true,true,false,true] Explanation: If you give all extraCandies to: - Kid 1, they will have 2 + 3 = 5 candies, which is the greatest among the kids. - Kid 2, they will have 3 + 3 = 6 candies, which is the greatest among the kids. - Kid 3, they will have 5 + 3 = 8 candies, which is the greatest among the kids. - Kid 4, they will have 1 + 3 = 4 candies, which is not the greatest among the kids. - Kid 5, they will have 3 + 3 = 6 candies, which is the greatest among the kids. 👨‍💻 Алгоритм: 1⃣Найдите максимальное количество конфет в массиве candies, сохраняя его в переменной maxCandies. 2⃣Создайте булев список answer и пройдитесь по массиву candies, добавляя в answer значение true, если текущий ребенок с добавленными extraCandies имеет количество конфет больше или равное maxCandies, иначе добавляйте false. 3⃣Верните список answer. 😎 Решение: class Solution { public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) { int maxCandies = 0; for (int candy : candies) { maxCandies = Math.max(candy, maxCandies); } List<Boolean> result = new ArrayList<>(); for (int candy : candies) { result.add(candy + extraCandies >= maxCandies); } return result; } } Ставь 👍 и забирай 📚 Базу знаний
434
20
Задача: 735. Asteroid Collision Сложность: medium Нам дан массив asteroids, состоящий из целых чисел, представляющих астероиды в ряд. Для каждого астероида абсолютное значение обозначает его размер, а знак - направление движения (положительное - вправо, отрицательное - влево). Каждый астероид движется с одинаковой скоростью. Определите состояние астероидов после всех столкновений. Если два астероида столкнутся, меньший из них взорвется. Если оба одинакового размера, то взорвутся оба. Два астероида, движущиеся в одном направлении, никогда не встретятся. Пример: Input: sentence1 = ["great","acting","skills"], sentence2 = ["fine","drama","talent"], similarPairs = [["great","fine"],["drama","acting"],["skills","talent"]] Output: true 👨‍💻 Алгоритм: 1⃣Используйте стек для отслеживания движущихся вправо астероидов. 2⃣Пройдите по массиву астероидов: Если астероид движется вправо, добавьте его в стек. Если астероид движется влево, сравните его с последним астероидом в стеке (если он есть и движется вправо): Если движущийся вправо астероид больше, текущий взорвется. Если движущийся влево астероид больше, последний астероид в стеке взорвется, и продолжите сравнение. Если они одинакового размера, оба взорвутся. 3⃣Добавьте оставшиеся астероиды из стека и текущий астероид в результат. 😎 Решение: import java.util.*; public class Solution { public int[] asteroidCollision(int[] asteroids) { Stack<Integer> stack = new Stack<>(); for (int asteroid : asteroids) { boolean alive = true; while (alive && asteroid < 0 && !stack.isEmpty() && stack.peek() > 0) { int last = stack.pop(); if (last == -asteroid) { alive = false; } else if (last > -asteroid) { stack.push(last); alive = false; } } if (alive) { stack.push(asteroid); } } int[] result = new int[stack.size()]; for (int i = result.length - 1; i >= 0; i--) { result[i] = stack.pop(); } return result; } } Ставь 👍 и забирай 📚 Базу знаний
433