LeetCode Online Judge 题目C# 练习 - Rotate Image

You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?

 1         public static void RotateImage(List<List<int>> matrix)

 2         {

 3             if (matrix.Count <= 1)

 4                 return;

 5 

 6             int n = matrix.Count - 1;

 7 

 8             Debug.Assert(n == matrix[0].Count);

 9 

10             int temp;

11             for (int i = 0; i <= n / 2; i++)

12             {

13                 for (int j = i; j < n - i; j++)

14                 {

15                     temp = matrix[i][j];

16                     matrix[i][j] = matrix[n - j][i];

17                     matrix[n - j][i] = matrix[n - i][n - j];

18                     matrix[n - i][n - j] = matrix[j][n - i];

19                     matrix[j][n - i] = temp;

20                 }

21             }

22         }

代码分析:

  没什么好说的,i 是 每次开始的位置,(0,0),(1,1),(2,2)...... j 就是迭代每一行,每一列的元素。

你可能感兴趣的:(LeetCode)