相关疑难解决方法(0)

就地阵列重新排序?

假设我有一个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]);
Run Code Online (Sandbox Code Playgroud)

这可以在O(1)空间和O(n)时间内完成,最好不要变异indices吗?

language-agnostic arrays algorithm

20
推荐指数
2
解决办法
4728
查看次数

标签 统计

algorithm ×1

arrays ×1

language-agnostic ×1