旋转
为了面试的时候快点写出来
可以记一下:
- 顺时针转90:
将矩阵按照主对角线(左上~右下)反转;
将矩阵的每行按照中点反转; - 逆时针转90
将矩阵按照次对角线(左下~右上)反转;
将矩阵的每行按照中点反转;
顺时针90(leetcode48)
leetcode48 实际上要求不能用额外空间
方法1
新建一个matrix m
for (i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
m[j][3-1-i] = matrix[i][j];
}
}
方法1和2的规律我也纠结怎么找在面试时比较快,我就是用几个例子试出来的,希望有好的办法的小伙伴能给讲讲哇
方法2
旋转 找坐标
贴一个网址 这个图片过程清楚
https://www.shuzhiduo.com/A/ZOJPveZOdv/
下面是我自己的代码,leetcode 刷题用的,我用的异或写的交换,为的是省一点空间,有点无聊,面试可不能这么写
需要注意的是 i < (n/2+n%2), j < (n/2),因为要遍历1/4块区域
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n