Java Algorithms
111 subscribers
625 photos
623 links
Добро пожаловать💡

Канал для всех, кто ищет качественные решения и объяснения задач на Java

Roadmap по каналу:
https://t.me/algoroadmap/2
Download Telegram
🟡Medium
356. Line Reflection

📝Дано n точек на двумерной плоскости, верните true, если существует такая прямая, параллельная оси Y, которая симметрично отражает данные точки

💡: найдите наименьшее и наибольшее значение x из всех точек, а затем используйте прямую minX + maxX для проверки отражения всех точек

147/200
#leetcode356 | #medium #premium
Please open Telegram to view this post
VIEW IN TELEGRAM
🟡Medium
161. One Edit Distance

📝 Даны две строки s и t, вернуть true, если они находятся на расстоянии одного редактирования друг от друга.

Строка s находится на расстоянии одного редактирования от t, если можно:
Вставить ровно один символ в s, чтобы получить t
Удалить ровно один символ из s, чтобы получить t
Заменить ровно один символ s другим символом, чтобы получить t

💡: если текущие символы двух строк не равны — используйте каждую операцию и проверьте оставшуюся часть строк

150/200
#leetcode161 | #medium #premium
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🟡Medium
2743. Count Substrings Without Repeating Character

📝 Вам дана строка, состоящая только из строчных английских букв. В данной задаче подстрока является особой, если она не содержит повторяющихся символов, необходимо вернуть количество таких подстрок

💡: используйте подход sliding window

152/200
#leetcode2743 | #medium #premium
Please open Telegram to view this post
VIEW IN TELEGRAM
🟡Medium
253. Meeting Rooms II

📝Дан массив интервалов времени встреч intervals, где intervals[i] = [starti, endi], вернуть минимально необходимое количество комнат для их проведения

💡: используйте PriorityQueue для хранения времени окончания встреч

155/200
#leetcode253 | #medium #premium
Please open Telegram to view this post
VIEW IN TELEGRAM
🟢Easy
408. Valid Word Abbreviation

📝Дана строка word и аббревиатура abbr, вернуть true, если строка соответствует заданной аббревиатуре

Строку можно сократить, заменив любое количество непустых подстрок их длинами, при этом длины не должны иметь начальных нулей. Например:
"substitution" -> "s10n"
"substitution" -> "sub4u4"
"substitution" -> "12"


💡: используйте два указателя и моделируйте раскрытие аббревиатуры

166/200
#leetcode408 | #easy #premium
Please open Telegram to view this post
VIEW IN TELEGRAM
Решение задачи 408

Time: O(n)
Space: O(1)

⚡️ Идея
проходим по строке word и аббревиатуре abbr с помощью двух указателей — i и j:
если текущий символ abbr цифра и не ноль — запускаем цикл с передвижением указателя j и записью всего числа, а затем передвигаем указатель i на соответствующее значение
если текущие символы равны, передвигаем оба указателя
иначе возвращаем false (символы не равны или число в abbr начинается с 0)
в конце возвращаем true, если оба указателя соответствуют длинам своих строк

#solution408
Please open Telegram to view this post
VIEW IN TELEGRAM
🟡Medium
280. Wiggle Sort

📝Дан массив целых чисел nums, отсортируйте его так, чтобы nums[0] <= nums[1] >= nums[2] <= nums[3]....

Необходимо решить задачу за O(n) по времени

💡: используйте свойство четной и нечетной позиций относительно левого элемента

174/200
#leetcode280 | #medium #premium
Please open Telegram to view this post
VIEW IN TELEGRAM
🟢Easy
1427. Perform String Shifts

📝 Вам дана строка s и матрица shift, где shift[i] = [d, c]

d — это направление: 0 для сдвига влево, 1 для сдвига вправо
c — это величина, на которую должна быть смещена строка

Верните окончательную строку после всех операций

💡: посчитайте общий сдвиг, пройдя по всей матрице shift

181/200
#leetcode1427 | #easy #premium
Please open Telegram to view this post
VIEW IN TELEGRAM
🟡Medium
1229. Meeting Scheduler

Company: 📱🚖📱

📝Даны массивы временных интервалов slots1 и slots2 доступности двух человек и длительность встречи duration, вернуть самый ранний временной интервал, который подходит им обоим и имеет длительность duration.

Гарантируется, что никакие два слота доступности одного и того же человека не пересекаются друг с другом

💡: вычисляйте общий промежуток времени для текущих слотов

#leetcode1229 | #medium #premium #twopointers
Please open Telegram to view this post
VIEW IN TELEGRAM