天天信息:力扣:59. 螺旋矩阵 II

2023-03-14 19:07:40     来源:哔哩哔哩

题目:

59. 螺旋矩阵 II

难度中等975收藏分享切换为英文接收动态反馈


(资料图片仅供参考)

给你一个正整数 n,生成一个包含 1到 n2所有元素,且元素按顺时针顺序螺旋排列的 n x n正方形矩阵 matrix

示例 1:

输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]

示例 2:

输入:n = 1输出:[[1]]

提示:

1 <= n <= 20

第一种对法:

class Solution {

public:

vector<vector<int>> generateMatrix(int n) {

vector<vector<int>> s(n,vector<int>(n));

int top=0,bottom=n-1;

int right=n-1,left=0;

int cnt = 1;

while(top <= bottom && right >= left){

for(int i=left;i<=right;i++){

s[top][i]=cnt++;

}

for(int i=top+1;i<=bottom;i++){

s[i][right]=cnt++;

}

for(int i=right-1;i>=left;i--){

s[bottom][i]=cnt++;

}

for(int i=bottom-1;i>top;i--){

s[i][left]=cnt++;

}

top++,bottom--;

left++,right--;

}

return s;

}

};

注意细节:循环中的条件,行和列

时间复杂度O(n^2)

空间复杂度O(1)

关键词:

明星

电影