Вступление
Массив указателей представляет собой массив L
ненулевых целых чисел , где 0 ≤ L[i]+i < len(L)
имеет место для всех индексов i
(предполагается , что индексация с 0). Мы говорим, что индекс i
указывает на индекс L[i]+i
. Массив указателей представляет собой цикл, если индексы образуют один цикл длины len(L)
. Вот некоторые примеры:
[1,2,-1,3]
не является массивом указателей, потому что3
не указывает на индекс.[1,2,-1,-3]
является массивом указателей, но не циклом, потому что ни один индекс не указывает на-1
.[2,2,-2,-2]
является массивом указателей, но не циклом, потому что индексы образуют два цикла.[2,2,-1,-3]
это петля.
вход
Ваш ввод представляет собой непустой список ненулевых целых чисел в любом приемлемом формате. Может быть несортированным и / или содержать дубликаты.
Выход
Ваш вывод должен быть циклом, который содержит все целые числа во входном списке (и, возможно, также другие целые числа), считая кратности. Они не должны встречаться в том же порядке, что и на входе, и результат не должен быть минимальным в любом смысле.
пример
Для ввода [2,-4,2]
приемлемым будет вывод [2,2,-1,1,-4]
.
Правила и оценки
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены. Включение нескольких примеров входов и выходов в ваш ответ приветствуется.
Контрольные примеры
Они даны в формате input -> some possible output(s)
.
[1] -> [1,-1] or [1,1,1,-3]
[2] -> [2,-1,-1] or [1,2,-2,-1]
[-2] -> [1,1,-2] or [3,1,2,-2,-4]
[2,-2] -> [2,-1,1,-2] or [2,-1,2,-2,-1]
[2,2,2] -> [2,-1,2,-2,2,-2,-1] or [2,2,2,2,-3,-5]
[2,-4,2] -> [2,2,-1,1,-4] or [2,5,1,1,1,-4,2,-7,-1]
[3,-1,2,-2,-1,-5] -> [2,3,-1,2,-1,-5] or [3,3,-1,-1,2,2,-1,6,1,1,1,1,-12,-5]
[-2,-2,10,-2,-2,-2] -> [10,-1,1,-2,-2,1,-2,-2,1,-2,-2]
[-15,15,-15] -> [15,-1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,-15,-15]
[1,2,3,4,5] -> [1,2,3,-1,4,-1,5,-1,-1,-9,-1,-1]
n = 0
, потому что спецификация говорит " ненулевые целые числа ".