59. Spiral Matrix II

Posted skillking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了59. Spiral Matrix II相关的知识,希望对你有一定的参考价值。

一、题目

  1、审题

 技术分享图片

  2、分析

    给一个正整数 n,生成 nXn 的矩阵数组,其中数组值为从 1 开始的旋转增加的数值。

 

二、解答

  1、思路:

    与 54 题思路类似。

     ①、从左向右、右向左时需要判断 top 是否小与 bottom;

      ②、从上到下、下到上时需要判断 left 是否 小与 right。

    注意: 题目中说生成正矩阵,所以 ①、②的判断可以省略。

public int[][] generateMatrix(int n) {
        
        int[][] arr = new int[n][n];
        int num = 1;
        
        int left = 0;
        int right = n - 1;
        int top = 0;
        int bottom = n - 1;
        
        while(left <= right && top <= bottom) {
            
            for (int i = left; i <= right; i++) {
                arr[top][i] = num++;
            }
            top++;

            
            for (int i = top; i <= bottom; i++) {
                arr[i][right] = num++;
            }
            right--;
            
            //if(top <= bottom) {
                for (int i = right; i >= left; i--) {
                    arr[bottom][i] = num++;
                }
                bottom--;
            //}
            
            //if(left <= right) {
                for (int i = bottom; i >= top; i--) {
                    arr[i][left] = num++;
                }
                left++;
            //}
        }
   return arr;
    }
    

 

以上是关于59. Spiral Matrix II的主要内容,如果未能解决你的问题,请参考以下文章

#Leetcode# 59. Spiral Matrix II

java 59. Spiral Matrix II.java

java 59. Spiral Matrix II.java

java 59. Spiral Matrix II.java

java 59. Spiral Matrix II.java

java 59. Spiral Matrix II.java