标签:
题目:给定二维数组,将其中每个点顺时针旋转90度。对于外循环,只需要旋转一半的长度就可以。可以想象把正方形上下平分,拿着另一半旋转3次,每次转90度,最后刚好对齐。 因此i ∈ [0,n/2]
public class Solution { private static bool IsMatrix(int[,] matrix){ if(matrix == null){ return false; } for(var i = 0;i < matrix.GetLength(0); i++){ if(matrix.GetLength(1) != matrix.GetLength(0)){ return false; } } return true; } // clock direction public void Rotate(int[,] matrix) { if(!IsMatrix(matrix)){ return; } var n = matrix.GetLength(0) - 1; for(var i = 0;i <= n/2 + 1 ;i ++){ for(var j = i;j < n-i; j++){ var t = matrix[i,j]; matrix[i,j] = matrix[n-j,i]; matrix[n-j,i] = matrix[n-i,n-j]; matrix[n-i,n-j] = matrix[j,n-i]; matrix[j,n-i] = t; } } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/lan_liang/article/details/47424119