题目:反转二维数组的元素,按顺时针90°。
例如:
{{1,2,3}, {{7,4,1},
{4,5,6}, to {8,5,2},
{7,8,9}} {9,6,3}}
题解:
1.关于matrix.length/2对称的行交换位置即可。
2.关于主对角线对称的元素交换位置;
public class Solution {
public void rotate(int[][] matrix) {
if(matrix == null||matrix.length == 0||matrix.length!=matrix[0].length)
return;
for(int i=0;i<(matrix.length+1)>>1;i++)
{
int[]temp=matrix[i];
matrix[i]=matrix[matrix.length-1-i];
matrix[matrix.length-1-i]=temp;
}
for(int i=1;i<matrix.length;i++)
{
for(int j=0;j<i;j++)
{
int temp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=temp;
}
}
}
}
本文介绍了一种高效的方法来实现二维数组的顺时针90°旋转。通过两个步骤:首先交换数组的对称行,然后进行主对角线元素的交换,可以完成旋转操作。文中提供了一个Java类`Solution`及其实现方法`rotate`,该方法接受一个正方形二维数组作为参数,并就地完成旋转。
1725

被折叠的 条评论
为什么被折叠?



