您的位置:首页 > 其它

Rotate Image 顺时针翻转矩阵 两次交换 先对角线 再前后

2014-08-24 19:06 411 查看
题目:

点击打开链接

将一个矩阵就地顺时针翻转90度。

解答:

两次翻转 先对角线交换 再每一行前后交换。

例如:

1 2 3

4 5 6

7 8 9

对角线交换得到:

1 4 7

2 5 8

3 6 9

每一行前后交换得:

7 4 1

8 5 2

9 6 3

得出结果。

代码:

class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
int n = matrix.size();
for (int i = 0; i < n - 1; i++)
{
for (int j = i; j < n; j++)
{
swap(matrix[i][j], matrix[j][i]);
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n / 2; j++)
{
swap(matrix[i][j], matrix[i][n - 1 - j]);
}
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: