思路: 和54题一模一样,所以没啥好讲的了,思路已经在54题讲过了,有不懂的地方去看54题吧。这边直接上代码了:
class Solution { public int[][] generateMatrix(int n) { int[][] matrix = new int[n][n]; int num = 1; int left = 0, right = n - 1, up = 0, down = n - 1; while(left < right && up < down){ // up for(int i = left; i <= right; i++){ matrix[up][i] = num; num++; } // right for(int i = up + 1; i <= down; i++){ matrix[i][right] = num; num++; } // down for(int i = right - 1; i >= left; i--){ matrix[down][i] = num; num++; } //left for(int i = down - 1; i > up; i-- ){ matrix[i][left] = num; num++; } up++; down--; left++; right--; } // n is odd if(left == right) matrix[n / 2][n / 2] = n * n; return matrix; } }总结:无