题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
找到位置关系,直接一个while循环用来赋值即可
#include <iostream> #include <vector> using namespace std; int main() { int n; cin>>n; vector<vector<int>> a(n,vector<int>(n,0)); int temp=1; int i=0,j=0; //每当赋值到第0行第j列时,下一个需要从第j+1行第0列开始 //其他时候下一个位置就是a[i-1][j+1]; while(j<n&&i<n){ a[i][j]=temp++; if(i==0){ i=j+1; j=0; } else{ i--; j++; } } for(int i=0;i<n;i++){ for(int j=0;j<n-i;j++){ cout<<a[i][j]<<" "; } cout<<endl; } return 0; }