【发布时间】:2014-08-28 02:02:43
【问题描述】:
我有一个包含 n 个数字的数组,比如 [1,4,6,2,3]。排序后的数组是[1,2,3,4,6],这些数字在旧数组中的索引是0、3、4、1和2。给定n个数字的数组,找到这个索引数组的最佳方法是什么?
我的想法是为每个元素运行订单统计信息。但是,由于我必须多次重写这个函数(在比赛中),我想知道是否有一种捷径可以做到这一点。
【问题讨论】:
-
你能展示一下你所做的尝试吗?
-
如果你颠倒任务的定义,你会得到和这里一样的:stackoverflow.com/questions/3071415/…
-
这个问题的例子有点模棱两可。您可能希望执行两种操作。 1.) 对于原始列表中的每个元素,获取该元素在排序列表中的位置。 2.) 对于排序列表中的每个元素,获取该元素在原始列表中的位置。在您的示例中,排序数组索引
[0,3,4,1,2]满足这两个任务,但通常情况并非如此。例如,给定输入列表[1,6,4,2,3],任务1的输出是[0,4,3,1,2],任务2的输出是[0,3,4,2,1]。