C++程序 按蛇形顺序输出矩阵
给定一个n x n矩阵,在该矩阵中,您必须按照蛇形顺序打印矩阵的元素。
示例:
Input :mat[][] = { {10, 20, 30, 40},
{15, 25, 35, 45},
{27, 29, 37, 48},
{32, 33, 39, 50}};
Output : 10 20 30 40 45 35 25 15 27 29
37 48 50 39 33 32
Input :mat[][] = { {1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
Output : 1 2 3 6 5 4 7 8 9
我们遍历所有的行。对于每一行,我们检查它是偶数行还是奇数行。如果是偶数行,则从左到右打印,否则从右到左打印。
// C++ program to print matrix in snake order
#include <iostream>
#define M 4
#define N 4
using namespace std;
void print(int mat[M][N])
{
// Traverse through all rows
for (int i = 0; i < M; i++) {
// If current row is even, print from
// left to right
if (i % 2 == 0) {
for (int j = 0; j < N; j++)
cout << mat[i][j] << " ";
// If current row is odd, print from
// right to left
} else {
for (int j = N - 1; j >= 0; j--)
cout << mat[i][j] << " ";
}
}
}
// Driver code
int main()
{
int mat[][] = { { 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 27, 29, 37, 48 },
{ 32, 33, 39, 50 } };
print(mat);
return 0;
}
输出 :
10 20 30 40 45 35 25 15 27 29 37 48 50 39 33 32
时间复杂度:给定N*N矩阵的O(N^2)
辅助空间:O(1)