Problem: 59. 螺旋矩阵 II
思路
明确起始条件,num从1开始 到target=n*n结束
明确循环条件,当num<=target的时候循环
注意矩阵的边界缩小
解题方法
循环
复杂度
时间复杂度:
O ( n 2 ) O(n^2) O(n2)
Code
class Solution {
public int[][] generateMatrix(int n) {
int left = 0, right = n - 1, top = 0, bottom = n - 1;
int num = 1, target = n * n;
int[][] M = new int[n][n];
while (num <= target) {
for (int i = left; i <= right; i++) {
M[top][i] = num++;
}
top++;
for (int i = top; i <= bottom; i++) {
M[i][right]=num++;
}
right--;
for (int i = right; i >= left; i--) {
M[bottom][i]=num++;
}
bottom--;
for (int i = bottom; i >= top; i--) {
M[i][left]=num++;
}
left++;
}
return M;
}
}