题解 | #牛群的逆时针移动#
牛群的逆时针移动
https://www.nowcoder.com/practice/f4d434add8494befad8d9058baf6970a
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型vector<vector<>> * @return int整型vector */ vector<int> spiralOrder(vector<vector<int> >& matrix) { // write code here int row = matrix.size(); vector<int> res; if(row == 0){ return res; } if(row == 1){ return matrix[0]; } int col = matrix[0].size(); int top = 0, left = 0, bottom = row - 1, right = col -1; while(top <= bottom && left <= right){ //向下遍历 for(int i = top; i <= bottom;i++){ res.emplace_back(matrix[i][left]); } left ++; //向右遍历 for(int i = left; i <= right;i++){ res.emplace_back(matrix[bottom][i]); } bottom --; if(left <= right){ //向上遍历 for(int i = bottom; i >= top;i--){ res.emplace_back(matrix[i][right]); } right --; //向左遍历 for(int i = right; i >= left;i--){ res.emplace_back(matrix[top][i]); } top ++; } } return res; } };