灵感来自Stack Overflow上的一个问题。
挑战
给定一个整数n>1
,输出可以通过恰好交换阵列中的两个条目而获得的所有阵列[1, 2, ..., n]
。
阵列可以以任何顺序生产。
您可以始终使用[0, 1, ..., n-1]
(从0开始)代替[1, 2, ..., n]
(从1开始)。
附加规则
测试用例
输入2
给出输出(假设从1开始)
2 1
输入3
给出输出(请注意,三个数组可以按任意顺序排列)
1 3 2
2 1 3
3 2 1
输入4
给出输出
1 2 4 3
1 3 2 4
1 4 3 2
2 1 3 4
3 2 1 4
4 2 3 1
输入7
给出输出
1 2 3 4 5 7 6
1 2 3 4 6 5 7
1 2 3 4 7 6 5
1 2 3 5 4 6 7
1 2 3 6 5 4 7
1 2 3 7 5 6 4
1 2 4 3 5 6 7
1 2 5 4 3 6 7
1 2 6 4 5 3 7
1 2 7 4 5 6 3
1 3 2 4 5 6 7
1 4 3 2 5 6 7
1 5 3 4 2 6 7
1 6 3 4 5 2 7
1 7 3 4 5 6 2
2 1 3 4 5 6 7
3 2 1 4 5 6 7
4 2 3 1 5 6 7
5 2 3 4 1 6 7
6 2 3 4 5 1 7
7 2 3 4 5 6 1
[0 ... n-1]
vs 的灵活性[1 ... n]
!当我不得不使用a时,总是感到有些烦恼,1+
因为J的零索引。