aboutsummaryrefslogtreecommitdiff
path: root/Computer_Science/leetcode/48-rotate_image.c
diff options
context:
space:
mode:
Diffstat (limited to 'Computer_Science/leetcode/48-rotate_image.c')
-rw-r--r--Computer_Science/leetcode/48-rotate_image.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/Computer_Science/leetcode/48-rotate_image.c b/Computer_Science/leetcode/48-rotate_image.c
new file mode 100644
index 0000000..785965f
--- /dev/null
+++ b/Computer_Science/leetcode/48-rotate_image.c
@@ -0,0 +1,31 @@
+void helper(int** matrix, int start, int len)
+{
+ if(len <= 1) return;
+
+ int tmp1, tmp2;
+
+ for(int i = 0; i < len - 1; i++) {
+ //save top
+ //top to righ
+ tmp1 = matrix[start + i][start + len - 1];
+ matrix[start + i][start + len - 1] = matrix[start][start + i];
+ //right to button
+ tmp2 = matrix[start + len - 1][start + len - 1 - i];
+ matrix[start + len - 1][start + len - 1 - i] = tmp1;
+ tmp1 = tmp2;
+ //buttom to left
+ tmp2 = matrix[start + len - 1 - i][start];
+ matrix[start + len - 1 - i][start] = tmp1;
+ tmp1 = tmp2;
+ //left to top
+ matrix[start][start + i] = tmp1;
+ }
+
+ helper(matrix, start + 1, len - 2);
+
+}
+void rotate(int** matrix, int matrixRowSize, int matrixColSize) {
+ helper(matrix, 0, matrixRowSize);
+}
+
+