aboutsummaryrefslogtreecommitdiff
path: root/Computer_Science/leetcode/48-rotate_image.c
blob: 785965f4ff5f30bc6d0b59d0568f2df90d488f8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
}