本文共 485 字,大约阅读时间需要 1 分钟。
题目:
将一个矩阵就地顺时针翻转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> &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]); } } } };
转载地址:http://wftsi.baihongyu.com/