1.螺旋矩阵【很久】6/1【感觉就是思路的搬运工,没完全理解】
原来想

但是如果是奇数矩阵,遍历不到中间
解决思路:
用left,right,top,down标记/限定每次遍历的元素,每次从left到right......
记得在left、top更新后check是否符合情况,不符合直接break,防止多遍历
【LeetCode 每日一题】54. 螺旋矩阵 | 手写图解版思路 + 代码讲解_哔哩哔哩_bilibili

class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int m = matrix.size();
int n = matrix[0].size();
vector<int> res;
int top = 0;
int down = m-1;
int left = 0;
int right = n-1;
while(left<=right && top<=down ){
for(int i = left;i<=right;i++){
res.push_back(matrix[top][i]);
cout<<matrix[top][i]<<endl;
}
top++;
for(int i = top;i<=down;i++){
res.push_back(matrix[i][right]);
}
if(top<=down){
right--;
}else{
break;
}
for(int i = right;i>=left;i--){
res.push_back(matrix[down][i]);
}
if(left<=right){
down--;
}else{
break;
}
for(int i = down;i>=top;i--){
res.push_back(matrix[i][left]);
}
left++;
}
return res;
}
};