目的
根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0
到N-1
(包括)的所有数字,其中N
输入的大小。
输入项
一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表
中(0索引)位置的值i
将介于0
和之间i
。
您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。
输出量
混乱的名单
逐步生成动作
Scrambled List | Moves to sort
[4,0,2,1,3,5] | [0, , , , , ] #4 stay in place
[4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left
[0,4,2,1,3,5] | [0,1,1, , , ] #2 is moved 1 slot
[0,2,4,1,3,5] | [0,1,1,2, , ] #1 is moved 2 slot
[0,1,2,4,3,5] | [0,1,1,2,1, ] #3 is moved 1 slot
[0,1,2,3,4,5] | [0,1,1,2,1,0] #5 is in the right place already
[0,1,2,3,4,5]
因此,对于输入,[0,1,1,2,1,0]
您的程序需要输出[4,0,2,1,3,5]
。
请记住,移动不是到(最终)排序列表中的位置,而是到排序的段(粗体部分)中的位置
测试用例
[0,0,0] -> [0,1,2]
[0,1,0,1] -> [1,0,3,2]
[0,0,0,0,0,5] -> [1,2,3,4,5,0]
[0,1,2,3] -> [3,2,1,0]
[0,1,1,1] -> [3,0,1,2]
[0,1,1,2,1,0] -> [4,0,2,1,3,5]
获奖
这是代码高尔夫球,因此最短的答案将获胜。