您的位置:首页 > 其它

Rotate Image

2016-12-28 17:30 45 查看

1.题目

给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。

给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]

2.算法

这道题比较简单,就是把矩阵分为N/2层,从外层向里层旋转,矩阵包括上下左右,把上边放到右边,把右边放到下边,把下边放到左边,把左边放到上边,其中每循环一边时要循环到最大的减去层数减去1

public void rotate(int[][] matrix) {
// write your code here
if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
return;
}

int layerNum = matrix.length / 2;

for (int layer = 0; layer < layerNum; layer++) {
for (int i = layer; i < matrix.length - layer - 1; i++) {
int temp = matrix[layer][i];
matrix[layer][i] = matrix[matrix.length - i - 1][layer];
matrix[matrix.length-i-1][layer] = matrix[matrix.length-layer-1][matrix.length-i-1];
matrix[matrix.length-layer-1][matrix.length-i-1] = matrix[i][matrix.length-layer-1];
matrix[i][matrix.length-layer-1] = temp;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: