You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bạn được cho một ma trận 2D `n x n` (biểu diễn cho hình ảnh). Hãy quay ma trận đó `90` độ (theo chiều kim đồng hồ).
6
+
7
+
**Lưu ý**
8
+
9
+
Xoay ma trận **tại chỗ**, có nghĩa là ta phải xoay trực tiếp lên ma trận 2D đầu vào, chứ **KHÔNG ĐƯỢC** thao tác lên một ma trận khác.
10
+
11
+
## Ví dụ
12
+
13
+
**Ví dụ 1**
14
+
15
+
```
16
+
[
17
+
[1, 2, 3],
18
+
[4, 5, 6],
19
+
[7, 8, 9],
20
+
]
21
+
```
22
+
23
+
Sau khi xoay ma trận trở thành:
24
+
25
+
```
26
+
[
27
+
[7, 4, 1],
28
+
[8, 5, 2],
29
+
[9, 6, 3],
30
+
]
31
+
```
32
+
33
+
**Ví dụ 2**
34
+
35
+
```
36
+
[
37
+
[5, 1, 9, 11],
38
+
[2, 4, 8, 10],
39
+
[13, 3, 6, 7],
40
+
[15, 14, 12, 16],
41
+
]
42
+
```
43
+
44
+
Sau khi xoay ma trận trở thành:
45
+
46
+
```
47
+
[
48
+
[15, 13, 2, 5],
49
+
[14, 3, 4, 1],
50
+
[12, 6, 8, 9],
51
+
[16, 7, 10, 11],
52
+
]
53
+
```
54
+
55
+
## Giải thuật
56
+
57
+
Ta sẽ cần thực hiện hai phản chiếu của ma trận:
58
+
- phản chiếu theo chiều dọc
59
+
- phản chiếu theo đường chiếu từ dưới cùng bên trái sang trên cùng bên phải
60
+
61
+
Hoặc ta cũng có thể phản chiếu theo đường chéo trên cùng bên trái/dưới cùng bên phải và phản chiếu theo chiều ngang.
62
+
63
+
Một câu hỏi phổ biến là làm thế nào để bạn tìm ra loại phản chiếu? Đơn giản chỉ cần xé một mảnh giấy hình vuông, viết một từ ngẫu nhiên lên đó ta sẽ biết được vòng quay của nó. Lật mảnh giấy lại đến khi tìm ra giải pháp.
64
+
65
+
Dưới đây là một ví dụ về cách dòng đầu tiên có thể được xoay bằng cách sử dụng xoay chéo trên cùng bên phải/dưới cùng bên trái cùng với xoay ngang.
66
+
67
+
68
+
```
69
+
Giả sử ta có một chuỗi ở dòng đầu ma trận:
70
+
71
+
A B C
72
+
• • •
73
+
• • •
74
+
75
+
Thực hiện phản chiếu chéo trên cùng bên phải/dưới cùng bên trái:
0 commit comments