我需要存储 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中是否有任何结构或库可以做到这一点并且在空间和时间上是有效的?