Inspirado por Retirado de uma pergunta no Stack Overflow .
O desafio
Dado um número inteiro n>1
, produza todas as matrizes que podem ser obtidas trocando exatamente duas entradas na matriz [1, 2, ..., n]
.
As matrizes podem ser produzidas em qualquer ordem.
Você pode usar consistentemente [0, 1, ..., n-1]
(com base em 0) em vez de [1, 2, ..., n]
(com base em 1).
Regras adicionais
Entrada e saída são flexíveis, como de costume .
Programas ou funções são permitidos, em qualquer linguagem de programação . As brechas padrão são proibidas.
O menor código em bytes vence.
Casos de teste
Entrada 2
fornece saída (assumida com base em 1)
2 1
Entrada 3
fornece saída (observe que as três matrizes podem estar em qualquer ordem)
1 3 2
2 1 3
3 2 1
Entrada 4
dá saída
1 2 4 3
1 3 2 4
1 4 3 2
2 1 3 4
3 2 1 4
4 2 3 1
Entrada 7
dá saída
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]
! Eu sempre me sinto um pouco irritado quando tenho que usar um 1+
porque J zero-indexes.