考虑以下情况。
我有一个数字数组:
[ 1,2,3,4 ]
如果加入了这个数组,我将拥有数字1234。
我想交换数字以达到最接近的更高数字。
1234将变为1243,将变为1324,将变为1342等等。
我需要使用什么算法来在数组中进行这些更改?
理想情况下,我想以这种方式使用该算法:(假设 Array 将此算法作为一个称为演练的函数)
[ 1,2,3,4].walkthrough() # gives [ 1, 2, 4, 3 ]
[ 1,2,4,3].walkthrough() # gives [ 1, 3, 2, 4 ]
数字列表继续:
1234
1243
1324
1342
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241