Time: O(k log(n))
Space: O(n + k)
Please open Telegram to view this post
VIEW IN TELEGRAM
1834. Single-Threaded CPU
Company:
У вас есть однопоточный процессор, который может обрабатывать максимум одну задачу одновременно и действует следующим образом:
Верните порядок, в котором процессор будет обрабатывать задачи
Объяснение для примера 1:
- В момент времени = 1 задача 0 доступна для обработки. Доступные задачи = {0}.
- Также в момент времени = 1 простаивающий ЦП начинает обработку задачи 0. Доступные задачи = {}.
- В момент времени = 2 задача 1 доступна для обработки. Доступные задачи = {1}.
- В момент времени = 3 задача 2 доступна для обработки. Доступные задачи = {1, 2}.
- Также в момент времени = 3 ЦП завершает задачу 0 и начинает обработку задачи 2, так как она самая короткая. Доступные задачи = {1}.
- В момент времени = 4 задача 3 доступна для обработки. Доступные задачи = {1, 3}.
- В момент времени = 5 ЦП завершает задачу 2 и начинает обработку задачи 3, так как она самая короткая. Доступные задачи = {1}.
- В момент времени = 6 ЦП завершает задачу 3 и начинает обработку задачи 1. Доступные задачи = {}.
- В момент времени = 10 ЦП завершает задачу 1 и переходит в режим ожидания.
#leetcode1834 | #medium #priorityqueue
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n log(n))
Space: O(n)
Please open Telegram to view this post
VIEW IN TELEGRAM
632. Smallest Range Covering Elements from K Lists
Company:
Диапазон [a, b] меньше диапазона [c, d], если b - a < d - c или a < c если b - a == d - c
#leetcode632 | #hard #priorityqueue
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n log(k))
Space: O(k)
Please open Telegram to view this post
VIEW IN TELEGRAM
2402. Meeting Rooms III
Company:
Вам дан массив meetings, где meetings[i] = [start_i, end_i) — время встречи в течение полузакрытого интервала. Все значения start уникальны.
Встречи распределяются по комнатам следующим образом:
Верните номер комнаты, в которой было больше всего встреч. Если ответов несколько, верните комнату с наименьшим номером
Объяснение для примеров:
Пример 1.
- В момент времени 0 обе комнаты не используются. Первая встреча начинается в комнате 0.
- В момент времени 1 не используется только комната 1. Вторая встреча начинается в комнате 1.
- В момент времени 2 используются обе комнаты. Третья встреча задерживается.
- В момент времени 3 используются обе комнаты. Четвертая встреча задерживается.
- В момент времени 5 заканчивается встреча в комнате 1. Третья встреча начинается в комнате 1 на период времени [5,10).
- В момент времени 10 заканчиваются встречи в обеих комнатах. Четвертая встреча начинается в комнате 0 на период времени [10,11).
В обеих комнатах 0 и 1 было проведено по 2 встречи, поэтому мы возвращаем 0.
Пример 2.
- В момент времени 1 все три комнаты не используются. Первая встреча начинается в комнате 0.
- В момент времени 2 комнаты 1 и 2 не используются. Вторая встреча начинается в комнате 1.
- В момент времени 3 не используется только комната 2. Третья встреча начинается в комнате 2.
- В момент времени 4 используются все три комнаты. Четвертая встреча задерживается.
- В момент времени 5 заканчивается встреча в комнате 2. Четвертая встреча начинается в комнате 2 на период времени [5,10).
- В момент времени 6 используются все три комнаты. Пятая встреча задерживается.
- В момент времени 10 заканчиваются встречи в комнатах 1 и 2. Пятая встреча начинается в комнате 1 на период времени [10,12).
В комнате 0 была проведена 1 встреча, а в комнатах 1 и 2 — по 2, поэтому мы возвращаем 1.
#leetcode2402 | #hard #priorityqueue
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(m log(m))
Space: O(m + n)
private int getMaxfreq(int[] freq) {
int max = 0;
int room = -1;
for (int i = 0; i < freq.length; i++) {
if (freq[i] > max) {
max = freq[i];
room = i;
}
}
return room;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
295. Find Median from Data Stream
Company:
Медиана — это среднее значение в упорядоченном целочисленном списке. Если размер списка четный, медиана — это среднее значение двух средних значений
#leetcode295 | #hard #priorityqueue
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(log(n))
Space: O(n)
Please open Telegram to view this post
VIEW IN TELEGRAM
Представь, что ты оказался в огромном замке, полном дверей, коридоров и развилок. Твоя цель — найти комнату с сокровищем. У тебя с собой блокнот и карандаш, но нет карты.
Каждый раз, когда ты доходишь до развилки, ты записываешь в блокнот:
"Я сейчас в коридоре A, и уже пошёл в дверь 1 из 3 возможных."
Если за этой дверью тупик — ты возвращаешься назад, смотришь в блокнот и говоришь:
"Хм, я был в коридоре A и пробовал дверь 1. Попробую теперь дверь 2."
Идёшь туда, снова записываешь шаг, и так далее.
Так и работает Backtracking в программировании:
#backtracking
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Стартуем сразу с
Please open Telegram to view this post
VIEW IN TELEGRAM
2698. Find the Punishment Number of an Integer
Company:
Номер наказания для n определяется, как сумма квадратов всех целых чисел i, таких, что:
#leetcode2698 | #medium #backtracking
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n * 2^k)
Space: O(k), [k = O(log^2 n)]
Please open Telegram to view this post
VIEW IN TELEGRAM
1079. Letter Tile Possibilities
Company:
Верните количество возможных непустых последовательностей, которые вы можете составить, используя буквы tiles
#leetcode1079 | #medium #backtracking
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n!)
Space: O(n)
Представьте, что мы играем с фишками «Скрабла» и у нас есть строка «AAABBC».
Здесь можно сделать важное замечание: на самом деле важно не расположение каждой буквы, а количество имеющихся в наличии фишек каждой буквы. Независимо от того, используем ли мы первую «А» или вторую «А», последовательности, которые мы можем создать, не меняются — нам просто нужно знать, что у нас есть три «А».
Это понимание подводит нас к ключевому решению: вместо отслеживания отдельных букв мы можем отслеживать частоту каждой из них
Please open Telegram to view this post
VIEW IN TELEGRAM
47. Permutations II
Company:
#leetcode47 | #medium #backtracking
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n*n!)
Space: O(n!)
Please open Telegram to view this post
VIEW IN TELEGRAM
306. Additive Number
Company:
Аддитивное число — это строка, цифры которой могут образовывать допустимую аддитивную последовательность:
#leetcode306 | #medium #backtracking
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(2^n)
Space: O(n)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
1415. The k-th Lexicographical String of All Happy Strings of Length n
Company:
Верните k-ю строку этого списка или пустую строку, если количество счастливых строк меньше.
Счастливая строка — это строка, которая:
Список счастливых строк для примера 3:
["aba", "abc", "aca", "acb", "bab", "bac", "bca", "bcb", "cab", "cac", "cba", "cbc"]
#leetcode1415 | #medium #backtracking
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(2^n)
Space: O(n*2^n)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2