Дан массив nums (элементы связанного списка) и число pos — индекс узла, на который указывает последний элемент (создавая цикл). Если pos = -1, цикла нет.
Определите, есть ли в списке цикл. Постройте связанный список, создайте цикл если нужно, и используйте алгоритм Флойда.
def has_cycle(nums: list[int], pos: int) -> bool:
has_cycle([3, 2, 0, -4], 1) → True # хвост указывает на индекс 1
has_cycle([1, 2], 0) → True
has_cycle([1], -1) → False
- 0 ≤ len(list) ≤ 10⁴
- -10⁵ ≤ val ≤ 10⁵
- pos ∈ [-1, len(list) - 1]
nums = [3,2,0,-4]pos = 1truenums = [1,2]pos = 0truenums = [1]pos = -1false