59. Spiral Matrix II
阿新 • • 發佈:2018-09-17
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