假设我有一个数组a
长度n
和第二个数组indices
,也有长度n
. indices
包含序列的一些任意排列[0, n)
。我想重新安排a
这样它就按照指定的顺序indices
。例如,使用 D 语法:
auto a = [8, 6, 7, 5, 3, 0, 9];
auto indices = [3, 6, 2, 4, 0, 1, 5];
reindexInPlace(a, indices);
assert(a == [5, 9, 7, 3, 8, 6, 0]);
这可以在 O(1) 空间和 O(n) 时间内完成吗?最好不要变异indices
?