Spiral Matrix

来源:互联网 发布:什么是单片机8位 编辑:程序博客网 时间:2024/05/07 08:35

题目大意:顺时针遍历矩阵


class Solution {public:    vector<int> spiralOrder(vector<vector<int> > &matrix) {       vector<int> result;        if(matrix.empty() || matrix[0].empty()) {            return result;        }        int start = 0;        int row = matrix.size();        int col = matrix[0].size();        while(row > start * 2 && col > start * 2) {            spiralOrderAssist(matrix, row, col, start, result);            start++;        }        return result;     }private:    void spiralOrderAssist(vector<vector<int> > &matrix, int row, int col, int start, vector<int>& result) {        int endRow = row - 1 - start;        int endCol = col - 1 - start;        for(int i = start; i <= endCol; i++) {            result.push_back(matrix[start][i]);        }                for(int i = start + 1; i <= endRow; i++) {            result.push_back(matrix[i][endCol]);        }                if(start < endRow) {            for(int i = endCol - 1; i >= start; i--) {                result.push_back(matrix[endRow][i]);            }        }        if(start < endCol) {            for(int i = endRow - 1; i > start; i--) {                result.push_back(matrix[i][start]);            }        }    }};


0 0
原创粉丝点击