Cyclically Rotating a Grid (LeetCode 1914)
Xem dạng PDFĐộ khó: Trung bình (2/4 điểm)
📖 Bài giải chi tiết: 👉 Bấm vào đây để xem lời giải cụ thể của bài này trên blog
⚠️ Lưu ý: hãy đảm bảo em đã thật sự cố gắng tự làm bài trước, rồi mới bấm vào xem bài giải nhé!
🎓 Khóa học Lập trình Thuật toán thi đấu của thầy Nguyễn Việt Nam Sơn – 111 buổi video, kèm cặp cá nhân, luyện thi chuyên Tin · HSG Tin học · Tin học trẻ · đội tuyển quốc gia · Olympic/ICPC. 👉 Xem chi tiết khóa học · Thành tích học viên
📞 Đăng ký học: Zalo 0767 666 702 · Facebook Nguyễn Việt Nam Sơn · 🌐 laptrinhthuattoan.blogspot.com
1914. Cyclically Rotating a Grid – Xoay vòng bảng số (LeetCode, độ khó Medium)
Cho một ma trận số nguyên grid kích thước ~m \times n~, trong đó ~m~ và ~n~ đều là số chẵn, và một số nguyên ~k~.
Ma trận được tạo thành từ nhiều lớp (lớp ngoài cùng là viền của cả bảng, lớp tiếp theo là viền của bảng còn lại sau khi bỏ lớp ngoài, …). Ví dụ ma trận ~6 \times 6~ có 3 lớp:
A A A A A A
A B B B B A
A B C C B A
A B C C B A
A B B B B A
A A A A A A
Một lần xoay vòng ma trận được thực hiện bằng cách xoay vòng từng lớp của ma trận. Để xoay vòng một lớp một lần, mỗi phần tử trong lớp sẽ chiếm chỗ của phần tử kề với nó theo hướng ngược chiều kim đồng hồ. Ví dụ một lần xoay:
40 10 10 20
30 20 -> 40 30
(40 đi xuống, 30 sang phải, 20 đi lên, 10 sang trái.)
Hãy in ra ma trận sau khi thực hiện ~k~ lần xoay vòng.
Dữ liệu vào
- Dòng đầu gồm 3 số nguyên ~m, n, k~ (số dòng, số cột, số lần xoay).
- ~m~ dòng tiếp theo, mỗi dòng ~n~ số nguyên là một hàng của
grid.
Kết quả
- ~m~ dòng, mỗi dòng ~n~ số cách nhau một dấu cách – ma trận sau khi xoay.
Giới hạn
- ~2 \le m, n \le 50~, cả ~m~ và ~n~ đều là số chẵn.
- ~1 \le~
grid[i][j]~\le 5000~ - ~1 \le k \le 10^9~
Sample Input 1
2 2 1
40 10
30 20
Sample Output 1
10 20
40 30
Sample Input 2
4 4 2
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Sample Output 2
3 4 8 12
2 11 10 16
1 7 6 15
5 9 13 14
Giải thích
Ma trận có 2 lớp: lớp ngoài 12 số, lớp trong 4 số 6, 7, 11, 10. Sau 1 lần xoay được 2 3 4 8 / 1 7 11 12 / 5 6 10 16 / 9 13 14 15, sau 2 lần được đáp án.
Bình luận