网站建成,怎么做相亲网站,服务器可以做自己网站用吗,程序小程序开发公司解法#xff1a;模拟
思路#xff1a;创建ret数组#xff0c;用变量标记原矩阵的行数和列数#xff0c;遍历一个元素就push_back进ret数组#xff0c;每次遍历完一行或一列#xff0c;相应行/列数--#xff0c;进行顺时针螺旋遍历到为0即可。
细节#xff1a;要有边界…
解法模拟
思路创建ret数组用变量标记原矩阵的行数和列数遍历一个元素就push_back进ret数组每次遍历完一行或一列相应行/列数--进行顺时针螺旋遍历到为0即可。
细节要有边界条件的判断因为要保证 rows0 cols 0while循环中的某次for结束将对应rows-- 到0 / cols--到0后面再继续就会出问题解决方法就是再加一层if判断即可。
附上完整代码
class Solution
{
public:vectorint spiralOrder(vectorvectorint matrix) {vectorint ret;int rows matrix.size(),cols matrix[0].size();int a 0,b -1;while(rows 0 cols 0) {for(int i 0;icols;i)ret.push_back(matrix[a][b]);rows--;for(int i 0;irows;i)ret.push_back(matrix[a][b]);cols--;if(rows 0){for(int i 0;icols;i)ret.push_back(matrix[a][--b]);rows--; }if(cols 0){for(int i 0;irows;i)ret.push_back(matrix[--a][b]);cols--;}}return ret;}
};