-
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Дан диапазон портов min и max. Также есть список уже занятых портов busy. Нужно написать функцию, возвращающую все диапазоны свободных портов внутри min и max.
Ввод:
min = 30000– Минимально допустимый портmax = 32000– Максимально допустимый портbusy = [30100, 30200, 31111]– Перечисление конкртеных занятых портов
Вывод:
expected = [[30000, 30099], [30101, 30199], [30201, 31110], [31112, 32000]]
Оценка:
- Длина списка busy - N
- Оценка по времени - O(N)
- Оценка по памяти - O(N)
# тестовый пример
a = 10
b = 12
busy = [10, 11, 12]
def func(min: int, max: int, b: list[int]) -> list[int]:
if len(b) < 1:
return [min, max]
result = [[min, busy[0]-1]]
for i in range(1, len(busy)):
lfp = result[-1][1]
if lfp+2 > busy[i-1] and lfp+2 < busy[i]:
list_next_port = [lfp+2, busy[i]-1]
result.append(list_next_port)
list_last_port = [result[-1][1]+2, max]
result.append(list_last_port)
return resultReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels