蛇行矩阵
题目:从左上角开始填充矩阵,按数码管上的数字2的形状来遍历。数字从0开始递增。
思路:
第一种:按照遍历的顺序来填充;注意边界条件!
第二种:公式计算?
vector<vector<int> > shexing(int h, int w){
vector<vector<int> > ans;
if (h <= 0 || w <= 0)
return ans;
for(int i=0; i< h; i++)
ans.push_back(vector<int>(w, 0));
int dir = -1;
bool turned = false;
int k = 0, i = 0, j = 0;
while(k < h*w){
ans[i][j] = k++;
if (h==1 || w==1){
i = (i==h-1)? i : i+1;
j = (j==w-1)? j : j+1;
}
else if(!turned && i==0){
if(j==w-1)
i++;
else
j++;
turned = true;
}
else if (!turned && j==0){