题解 | #蛇形矩阵#
蛇形矩阵
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;
}

查看23道真题和解析