[LeetCode] Spiral Matrix

来源:互联网 发布:淘宝剑三 编辑:程序博客网 时间:2024/05/23 13:04
vector<int> spiralOrder(vector<vector<int> > &matrix) {int m = matrix.size();int n = 0;vector<int> spiral;if(m < 1){return spiral;}else{n = matrix[0].size();if(n < 1){return spiral;}}int left = 0, right = n-1, top = 1, bottom = m-1;int index = 0;int row = 0, col = 0;for(int i = 0; i < m*n; i++){spiral.push_back(matrix[row][col]);switch(index){case 0:if(col == right){row++;index = 1;right--;break;}col++;break;case 1:if(row == bottom){col--;index = 2;bottom--;break;                           }row++;break;case 2:if(col == left){row--;index = 3;left++;break;}col--;break;case 3:if(row == top){col++;index = 0;top++;break;}row--;break;                                                           }}return spiral;}


思路和上一题Spiral Matrix II基本相同。

0 0
原创粉丝点击