假设我有一个包含N个元素的数组,每个元素表示0到N-1之间的唯一整数。假设我想要找到一个给定整数的索引,我可以循环遍历数组并在找到该数字时返回索引。由于这是低效的,我可以创建第二个数组,因此对于first_array[10] = 55
,我们将获得second_array[55] = 10
。
现在我们假设我不想创建第二个数组,我想在原地进行转换。有没有聪明的方法,聪明的意思是不需要额外分配,不需要疯狂的深度递归,不需要搜索整个数组N次?这种手术有名字吗?我觉得这个问题一定已经解决了,但我无法想象它可以被称为什么。
编辑:这是一个关于算法的问题,答案,作为一个算法,应该是一样的,不管编程语言。
如果问题是关于javascript的,您可以简单地使用indexOf()方法。在你的例子中:
first_array.indexOf(55); // it will return index of **55** in first_array