Skip to content

Commit 0907a95

Browse files
committed
[LeetCode Sync] Runtime - 4 ms (39.49%), Memory - 9 MB (57.83%)
1 parent 14c0b92 commit 0907a95

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

0048-rotate-image/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<p>You are given an <code>n x n</code> 2D <code>matrix</code> representing an image, rotate the image by <strong>90</strong> degrees (clockwise).</p>
2+
3+
<p>You have to rotate the image <a href="https://en.wikipedia.org/wiki/In-place_algorithm" target="_blank"><strong>in-place</strong></a>, which means you have to modify the input 2D matrix directly. <strong>DO NOT</strong> allocate another 2D matrix and do the rotation.</p>
4+
5+
<p>&nbsp;</p>
6+
<p><strong class="example">Example 1:</strong></p>
7+
<img alt="" src="https://assets.leetcode.com/uploads/2020/08/28/mat1.jpg" style="width: 500px; height: 188px;" />
8+
<pre>
9+
<strong>Input:</strong> matrix = [[1,2,3],[4,5,6],[7,8,9]]
10+
<strong>Output:</strong> [[7,4,1],[8,5,2],[9,6,3]]
11+
</pre>
12+
13+
<p><strong class="example">Example 2:</strong></p>
14+
<img alt="" src="https://assets.leetcode.com/uploads/2020/08/28/mat2.jpg" style="width: 500px; height: 201px;" />
15+
<pre>
16+
<strong>Input:</strong> matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
17+
<strong>Output:</strong> [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
18+
</pre>
19+
20+
<p>&nbsp;</p>
21+
<p><strong>Constraints:</strong></p>
22+
23+
<ul>
24+
<li><code>n == matrix.length == matrix[i].length</code></li>
25+
<li><code>1 &lt;= n &lt;= 20</code></li>
26+
<li><code>-1000 &lt;= matrix[i][j] &lt;= 1000</code></li>
27+
</ul>

0048-rotate-image/solution.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
void rotate(vector<vector<int>>& matrix) {
4+
int l = 0, r = matrix.size()-1;
5+
6+
while (l < r) {
7+
for (int i = 0; i < r-l; i++) {
8+
int t = l, b = r;
9+
10+
int temp = matrix[t][l+i];
11+
matrix[t][l+i] = matrix[b-i][l];
12+
matrix[b-i][l] = matrix[b][r-i];
13+
matrix[b][r-i] = matrix[t+i][r];
14+
matrix[t+i][r] = temp;
15+
}
16+
l++;
17+
r--;
18+
}
19+
}
20+
};

0 commit comments

Comments
 (0)