# 54. 螺旋矩阵
class Solution { | |
public: | |
vector<int> spiralOrder(vector<vector<int>>& matrix) { | |
vector<vector<int> > ve; | |
int m = matrix.size(); | |
int n = matrix[0].size(); | |
vector<int> temp; | |
vector<int> res; | |
int i = 0, j = 0; | |
for (; j < n; j++) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
} | |
j -= 1; | |
i += 1; | |
for (; i < m; i++) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
} | |
i -= 1; | |
j -= 1; | |
if(m == 1 || n == 1){ | |
return res; | |
} | |
for (; j >= 0; j--) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
} | |
j += 1; | |
i -= 1; | |
for (; i >= 1; i--) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
} | |
j = 1; | |
i = 1; | |
int direction = 1; | |
if(m < 2 || n < 2) { | |
return res; | |
} | |
while (matrix[i][j] != -111) { | |
if (direction) { | |
while (matrix[i][j] != -111) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
j++; | |
} | |
j -= 1; | |
i += 1; | |
while (matrix[i][j] != -111) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
i++; | |
} | |
i -= 1; | |
j -= 1; | |
direction = 0; | |
} | |
else { | |
while (matrix[i][j] != -111) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
j--; | |
} | |
j += 1; | |
i -= 1; | |
while (matrix[i][j] != -111) { | |
res.push_back(matrix[i][j]); | |
matrix[i][j] = -111; | |
i--; | |
} | |
i += 1; | |
j += 1; | |
direction = 1; | |
} | |
} | |
return res; | |
} | |
}; |
# 48. 旋转图像
class Solution { | |
public: | |
void rotate(vector<vector<int>>& matrix) { | |
int n = matrix.size(); | |
int i = 0; | |
int j = 0; | |
int w = matrix.size() - 1; | |
for (int z = 0; z < n / 2; z++) { | |
i = j = z; | |
for (; j < w ; j++) { | |
int temp = matrix[i][j]; | |
matrix[i][j] = matrix[n - 1 - j][i]; | |
matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j]; | |
matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i]; | |
//matrix[j][n - 1 - i] = matrix[i][j]; | |
matrix[j][n - 1 - i] = temp; | |
} | |
w -= 1; // 每次宽度减 1 | |
} | |
} | |
}; |
/**
- Definition for singly-linked list.
*/