生成循环数组
介绍 甲指针数组是一个数组L,其中的非零整数0 ≤ L[i]+i < len(L)为所有指数保持i(假定从0开始的索引)。我们说索引i 指向索引L[i]+i。如果索引形成一个length周期,则指针数组是一个循环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] …