1. 程式人生 > >59. Spiral Matrix II

59. Spiral Matrix II

clas i++ -- alt 矩陣 分享 com inf top

一、題目

  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