螺旋矩阵2

mac2022-06-30  102

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

示例:

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

和之前的螺旋矩阵有点像:

class Solution { public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> matrix; matrix.resize(n); for(int i = 0; i < n; i++){ matrix[i].resize(n); } int index = 1; int i1 = 0; int i2 = n-1; int j1 = 0; int j2 = n-1; while(true) { for(int j = j1; j <=j2; j++){ matrix[i1][j] = index++; } if(index > n*n) break; i1++; for(int i = i1; i <= i2; i++){ matrix[i][j2] = index++; } if(index > n*n) break; j2--; for(int j = j2; j >= j1; j--){ matrix[i2][j] = index++; } if(index > n*n) break; i2--; for(int i = i2; i >= i1; i--){ matrix[i][j1] = index++; } if(index > n*n) break; j1++; } for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ cout << matrix[i][j] << ","; } cout << endl; } return matrix; } };

 

转载于:https://www.cnblogs.com/Shinered/p/11381822.html

相关资源:C 螺旋矩阵C 螺旋矩阵C 螺旋矩阵C 螺旋矩阵
最新回复(0)