矩阵的蛇形打印 #include <iostream> #include<bits/stdc++.h> using namespace std; vector<int> print_mat(vector<vector<int>> mat) { vector<int> res; int m = mat.size(); int n = mat[0].size(); int i=0; int j=0; bool reverse = false; for (int iter=0; iter<m+n-1; iter++) { if (reverse) { while(i>=0 && j<n) { res.push_back(mat[i][j]); i--;j++; } reverse = !reverse; if (i==-1&&j<n) { i = 0; } else { i = i + 2; j = n-1; } }else{ while(j>=0&&i<m){ res.push_back(mat[i][j]); i++;j--; } reverse = !reverse; if (j==-1&&i<m) { j=0; } else { j = j+2; i = m-1; } } } return res; } int main() { vector<vector<int>> mat={{1,2,3}, {4,5,6}, {7,8,9}}; auto res = print_mat(mat); for (auto&it:res) cout << it<<" "; return 0; }