🎯 请点击上方原题链接,查看题目描述👆
💭 解题思路#
顺序填充:从左到右——>从上到下——>从右到左——>从下到上
💻 代码实现#
class Solution { public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; int left = 0,right = n - 1,top = 0,bottom = n - 1; int count = 0; while(count < n * n){ //从左到右 if(top <= bottom){ for(int i = left;i <= right;i++){ count++; res[top][i] = count; } top++; }
//上到下 if(left <= right){ for(int i = top;i <= bottom;i++){ count++; res[i][right] = count; } right--; }
//右到左 if(top <= bottom){ for(int i = right;i >= left;i--){ count++; res[bottom][i] = count; } bottom--; }
//下到上 if(left <= right){ for(int i = bottom;i >= top;i--){ count++; res[i][left] = count; } left++; } } return res; }}