Spiral Matrix II

来源:互联网 发布:阿里云短信授权委托书 编辑:程序博客网 时间:2024/05/23 09:58

Spiral Matrix II


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 ]]
Java代码:

public class Solution {   public int[][] generateMatrix(int n) {    int[][] ans = new int[n][n];    int curr = 1;    for (int i = 0, j = 0; i<(n+1)/2 ; ++i, ++j){        for (int k = j; k<n-j; ++k){            ans[i][k] = curr++;        }        if (i>=n/2) break;  // this is needed for odd n's.        for (int k = i+1; k<n-1-i; ++k){            ans[k][n-1-j]=curr++;        }        for (int k = n-1-j; k>j; --k){            ans[n-1-i][k] = curr++;        }        for (int k = n-1-i; k>i; --k){            ans[k][j] = curr++;        }    }    return ans;}}

 

0 0
原创粉丝点击