LeetCode - Spiral Matrix II
Posted IncredibleThings
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode - Spiral Matrix II相关的知识,希望对你有一定的参考价值。
Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
Example:
Input: 3 Output: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
本题就是按照螺旋的顺序把数字依次塞进去,我们可以维护上下左右边界的四个变量,一圈一圈往里面添加。最后要注意的是,如果n是奇数,要把中心那个点算上。
class Solution { public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; //initialize four top corner int left = 0; int right = n-1; int bottom = n-1; int top = 0; int num = 1; while (left < right && top < bottom){ //left -> right for(int i=left; i<right; i++){ res[top][i] = num++; } //top -> bottom for(int i=top; i<bottom; i++){ res[i][right] = num++; } //right -> left for (int i = right; i>left; i--){ res[bottom][i] = num++; } //bootom -> top for(int i = bottom; i>top; i--){ res[i][left] = num++; } left++; right--; bottom--; top++; } if(n % 2 == 1){ res[n/2][n/2] = num; } return res; } }
以上是关于LeetCode - Spiral Matrix II的主要内容,如果未能解决你的问题,请参考以下文章
#Leetcode# 59. Spiral Matrix II