思路
主要是利用++行++列每次最終的位置就是終點。
(0-2列)m=2;(0-2行)n=3(行有三個數)
row=0,col=-1;要從(0,0)開始所以爲了統一的++col
要從-1點開始。
下面給出代碼
vector<int> res;
if(matrix.empty()) return res;
int m=matrix.size()-1;
int n=matrix[0].size();
int row=0,col=-1,i=0;
while(m>=0 && n>=0){
switch(i++%4){
case 0:for(int i=0;i<n;i++)res.push_back(matrix[row][++col]);
n--;break;
case 1:for(int i=0;i<m;i++)res.push_back(matrix[++row][col]);
m--;break;
case 2:for(int i=0;i<n;i++)res.push_back(matrix[row][--col]);
n--;break;
case 3:for(int i=0;i<m;i++)res.push_back(matrix[--row][col]);
m--;break;
}
}
return res;