LEETCODE: Spiral Matrix II

来源:互联网 发布:spring源码 深度解析 编辑:程序博客网 时间:2024/05/24 16:13

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,
Given n = 3,

You should return the following matrix:
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]
无需解释,LEETCODE已经有好几个类似的例子了。



class Solution {public:    vector<vector<int> > generateMatrix(int n) {        vector<vector<int> > results(n, vector<int>(n, 0));        int rount = n / 2;        int center = n % 2 == 1 ? 1 : 0;        int data = 1;        for(int ii = 0; ii < rount; ii ++) {            for(int jj = ii; jj < n - ii - 1; jj ++) {                results[ii][jj] = data;                data ++;            }            for(int jj = ii; jj < n - ii - 1; jj ++) {                results[jj][n - ii - 1] = data;                data ++;            }            for(int jj = ii; jj < n - ii - 1; jj ++) {                results[n - ii - 1][n - jj - 1] = data;                data ++;            }            for(int jj = ii; jj < n - ii - 1; jj ++) {                results[n - jj - 1][ii] = data;                data ++;            }        }                if(center == 1) {            results[rount][rount] = data;        }                return results;    }};




0 0