由于前两天一直在写毕设的东西,配置机器学习的环境和搞数据集还有调试代码,整的我头大。这两天的leetcode题目也懈怠了,自我检讨一下,以后每天还是要保证3-5道左右的Leetcode题目才行,不然要是进了复试但没有好好准备机试,那估计心态都爆炸了。
写的太多了,接下来是题目描述:
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
相应代码:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int t = 0; // top
int b = n-1; // bottom
int l = 0; // left
int r = n-1; // right
vector<vector<int>> ans(n,vector<int>(n));
int k=1;
while(k<=n*n){
for(int i=l;i<=r;++i,++k) ans[t][i] = k;
++t;
for(int i=t;i<=b;++i,++k) ans[i][r] = k;
--r;
for(int i=r;i>=l;--i,++k) ans[b][i] = k;
--b;
for(int i=b;i>=t;--i,++k) ans[i][l] = k;
++l;
}
return ans;
}
};
这个代码仅供自己学习。第一次了解C++中的vector如何生成二维数组,这个内容学习到了。
顺便贴以下关于vector的一些知识链接方便复习: