59. Spiral Matrix II

来源:互联网 发布:费用优化的步骤 编辑:程序博客网 时间:2024/06/04 00:23

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 ]
]

public class Solution {    public int[][] generateMatrix(int n) {        int[][] res = new int[n][n];        int rowbegin = 0, rowend = n-1, colbegin = 0, colend = n-1;        int index = 1;        while(rowbegin <= rowend && colbegin <= colend){            for(int i = colbegin; i <= colend; i++){                res[rowbegin][i] = index++;            }            rowbegin++;            for(int i = rowbegin; i <= rowend; i++){                res[i][colend] = index++;            }            colend--;            if(rowbegin <= rowend){                for(int i = colend; i >= colbegin; i--){                    res[rowend][i] = index++;                }            }            rowend--;            if(colbegin <= colend){                for(int i = rowend; i >= rowbegin; i--){                    res[i][colbegin] = index++;                }            }            colbegin++;        }        return res;    }}
0 0
原创粉丝点击