0

我有一个名为 H1 的 Hashmap。

H1 有 n 个 Hashmap 键。

对于 H1 哈希图,程序将创建幂集 {1,2,3,4,...n} 的所有排列。

所以换句话说,如果 n = 5,则 1,2,3,..5555 中的任何数字都是 H1 的有效列表。

因此,如果,

键 1 = 22

键 2 = 50

键 3 = 12

键 4 = 44

键 5 = 55

对于 111 = {22,22,22},对于 213 = {50,22,12} 对于 12345 = {22,50,12,44,55}。

我基本上需要以所有可能的组合以每个顺序查找所有列表(即:1342!= 3142)。

我有一个可能的解决方案,但我发现它根本不是最优的,它涉及将 int 值转换为字符串并查看字符串中的每个字符元素,我正在寻找是否有人知道更有效的方法。

4

1 回答 1

1

生成列表所有可能排列的算法?

这是一个复杂的算法,无论你想怎么做,我认为递归是一种有趣的方式。

递归方式基本上是删除一个元素,在缩短列表上调用递归,然后返回每个位置删除元素的递归结果。

于 2015-03-07T05:45:19.037 回答