AcWing 756. 蛇形矩阵
原题链接
简单
作者:
501
,
2021-01-11 09:50:33
,
所有人可见
,
阅读 313
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int m, n, x = 0, y = -1, c;
cin >> m >> n;
int t = m * n;
int a[m][n];
fill(a[0], a[0]+t, 0);
for(int i = 0; i < t; ){
while(y < n-1 && !a[x][y+1]){//右
a[x][++y] = ++i;
}
while(x < m-1 && !a[x+1][y]){//下
a[++x][y] = ++i;
}
while(y > 0 && !a[x][y-1]){//左
a[x][--y] = ++i;
}
while(x > 0 && !a[x-1][y]){//上
a[--x][y] = ++i;
}
}
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
cout << a[i][j];
if(j != n-1) cout << ' ';
}
cout << endl;
}
}