我需要存储 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 中是否有任何结构或库可以实现这一点,并且在空间和时间上都很高效?
最佳答案
如果没有重复项,List
界面将满足您的需求。
它提供了以下方法:
List#get(index)
返回索引为index
的元素List#indexOf(element)
返回第一个遇到的元素
的索引
关于java - Java 中排列的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47181881/