Spiral Matrix II

来源:互联网 发布:sql转义字符 编辑:程序博客网 时间:2024/05/09 05:33

题目大意:跟这题差不多http://blog.csdn.net/xiaoxiaoluo/article/details/44527045, 这里要求形成一个顺序的顺时针n * n的矩阵


class Solution {public:    vector<vector<int> > generateMatrix(int n) {        vector<vector<int> > matrix(n, vector<int>(n, 0));        if(n == 0) {            return matrix;        }        int col = n, row = n;        int start = 0, val = 1;        while(col > 2 * start && row > 2 * start) {            generateMatrixAssist(matrix, row, col, start, val);            start++;        }        return matrix;     }private:    void generateMatrixAssist(vector<vector<int> > &matrix, int row, int col, int start, int &val) {        int endCol = col - 1 - start;        int endRow = row - 1 - start;        for(int i = start; i <= endCol; i++) {            matrix[start][i] = val++;        }        for(int i = start + 1; i <= endRow; i++) {            matrix[i][endCol] = val++;        }        if(start < endRow) {            for(int i = endCol - 1; i >= start; i--) {                matrix[endRow][i] = val++;            }        }        if(start < endCol) {            for(int i = endRow - 1; i > start; i--) {                matrix[i][start] = val++;            }        }    }};


0 0
原创粉丝点击