牛客题霸 [螺旋矩阵] C++题解/答案
题目描述
给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
题解:
其实就是模拟过程,先往左走,走到头向下走,到头后向左走,再向上走
一直循环过程
代码:
class Solution {
public:vector<int> spiralOrder(vector<vector<int> > &matrix) {vector<int> ret;if(matrix.size()==0) return ret;int m=matrix.size();//行数int n=matrix[0].size();//列数int up=0,down=m-1,left=0,right=n-1;while(up<=down && left<=right){//向右移动for(int j=left;j<=right;j++)ret.push_back(matrix[up][j]);up++;//向下移动for(int j=up;j<=down;j++)ret.push_back(matrix[j][right]);right--;if(up<=down){//向左移动for(int j=right;j>=left;j--)ret.push_back(matrix[down][j]);}down--;if(left<=right){//向上移动for(int j=down;j>=up;j--)ret.push_back(matrix[j][left]);}left++;}return ret;}
};