Lấy cảm hứng từ Taken từ một câu hỏi tại Stack Overflow .
Các thách thức
Cho một số nguyên n>1
, xuất ra tất cả các mảng có thể thu được bằng cách hoán đổi chính xác hai mục trong mảng [1, 2, ..., n]
.
Các mảng có thể được sản xuất theo thứ tự bất kỳ.
Bạn luôn có thể sử dụng [0, 1, ..., n-1]
(dựa trên 0) thay vì [1, 2, ..., n]
(dựa trên 1).
Quy tắc bổ sung
Đầu vào và đầu ra linh hoạt như bình thường .
Các chương trình hoặc chức năng được cho phép, trong bất kỳ ngôn ngữ lập trình . Sơ hở tiêu chuẩn bị cấm.
Mã ngắn nhất trong byte thắng.
Các trường hợp thử nghiệm
Đầu vào 2
cho đầu ra (giả định 1 dựa trên)
2 1
Đầu vào 3
cho đầu ra (lưu ý rằng ba mảng có thể theo thứ tự bất kỳ)
1 3 2
2 1 3
3 2 1
Đầu vào 4
cho đầu ra
1 2 4 3
1 3 2 4
1 4 3 2
2 1 3 4
3 2 1 4
4 2 3 1
Đầu vào 7
cho đầu ra
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]
! Tôi luôn cảm thấy hơi khó chịu khi phải giải quyết 1+
vì J zero-index.