Giả sử tôi có ma trận (2D) sau:
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Xoay ma trận lần ngược chiều kim đồng hồ R
(không tăng theo 90 độ, chỉ 1 số mỗi lần),
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
Ví dụ đã hoàn thành:
Đầu vào:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Đầu ra:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(không gian lạ là sắp xếp các số trong các cột đẹp)
"Vòng" bên ngoài của ma trận quay 2 chiều ngược chiều kim đồng hồ và bên phải cũng xoay 2 vòng. Trong ma trận này, chỉ có hai vòng.
Một ví dụ với 1 "vòng":
2
[[1, 2],
[3, 4],
[5, 6]]
Nên đầu ra:
[[4, 6],
[2, 5],
[1, 3]]
Thách thức của bạn là đưa vào một ma trận và một số nguyên R
, và xuất phiên bản dịch sau khi R
xoay.
Xoay của ma trận 4x5 được biểu thị bằng hình sau:
Các ràng buộc:
2 ≤ M, N ≤ 100
, trong đó M và N là kích thước của ma trận. Nó được đảm bảo rằng tối thiểu của M và N sẽ là số chẵn.1 ≤ R ≤ 80
, trong đó r là số vòng quay.- Ma trận sẽ chỉ bao gồm các số nguyên dương.
- Giá trị không phải lúc nào cũng khác biệt.
- Đầu vào phải luôn là một mảng 2D (nếu bạn không thể lấy đầu vào thời gian chạy dưới dạng mảng 2D, thì bạn chỉ cần tìm một cách khác để nhận đầu vào).
Một trường hợp thử nghiệm khác, với các giá trị không khác biệt:
1
[[1, 1],
[2, 2],
[3, 3]]
Đầu ra:
[[1, 2],
[1, 3],
[2, 3]]
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất sẽ thắng!
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
16 đột nhiên bị trùng lặp Tôi đoán nó phải là : [[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
?