给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素
因为这个螺旋矩阵可能不是方的,所以在走完右上角这两条边后之后看看是不是已经填满了
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int left = 0, top = 0, right = matrix[0].size() - 1,
bottom = matrix.size() - 1;
std::vector<int> ans;
size_t count = matrix.size() * matrix[0].size();
ans.reserve(count);
while (ans.size() < count) {
for (int i = left; i <= right; ++i) {
ans.push_back(matrix[top][i]);
}
++top;
for (int i = top; i <= bottom; ++i) {
ans.p