题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
找规律,模拟矩阵
#include <iostream>
#include <vector>
using namespace std;
int main(){
int N = 0;
cin >> N;
vector<vector<int>> nums(N, vector<int>(N, 0));
int val = 1;
int k = N;
for (int i = 0; i < N; i++) {
int step = i + 2;
int temp = val;
for (int j = 0; j < k; j++) {
nums[i][j] = temp;
temp += step;
step++;
}
k--;
val += i + 1;
}
// 输出
for (vector<vector<int>>::iterator iter = nums.begin(); iter != nums.end(); iter++) {
auto temp = *iter;
for (vector<int>::iterator iterr = temp.begin(); iterr != temp.end(); iterr++) {
if (*iterr != 0) cout << *iterr << " ";
}
cout << endl;
}
}
查看25道真题和解析
