0

我需要存储 n 个整数的排列,并能够在有效时间内计算值的排列和逆运算。

即,我需要存储值 [0...n-1] 的重新排序,以便我可以要求位置(i)和值(j)(0 <= i,j <= n)。

举个例子——假设我们有以下值排列:

  • [7,2,3,6,0,4,8,9,1,5]

我需要以下操作:

  • 位置(7) = 9
  • 值(9)= 7

我知道 C++ 中的库,例如:https ://github.com/fclaude/libcds2

Java中是否有任何结构或库可以做到这一点并且在空间和时间上是有效的?

4

1 回答 1

1

如果没有重复,List界面将满足您的需求。

它提供了以下方法:

  • List#get(index)返回具有索引的元素index
  • List#indexOf(element)返回第一个遇到的索引element
于 2017-11-08T14:22:58.880 回答