在这个问题上,我们得到了一个二维数组。我们的任务是从第一行开始,从左到右,然后在下一行中从右到左,再从左到右,依次打印数组的所有元素。
让我们以一个例子来理解这个问题。
Input: array = {
{2, 5}
{4, 9}
}
Output: 2 5 9 4为了解决这个问题,我们将在行的给定方向(LtoR和RtoL)上打印元素。每次迭代后,用于显示打印方向的标志元素将切换。
这是一个简单而有效的解决方案,其时间复杂度= O(R * C)
显示我们解决方案实施情况的程序
#include<iostream>
using namespace std;
#define R 3
#define C 3
void printAlternateMatrix(int arr[R][C]) {
bool direction = true;
for (int i=0; i<R; i++){
if (direction){
for (int j=0; j<C; j++)
printf("%d ", arr[i][j]);
} else{
for (int j=C-1; j>=0; j--)
printf("%d ",arr[i][j]);
}
direction = !direction;
}
}
int main() {
int arr[][C] = {
{ 23 , 50 , 4 },
{ 89 , 9 , 34 },
{ 75 , 1 , 61 },
};
cout<<"Matrix in alternate order is :\n";
printAlternateMatrix(arr);
return 0;
}输出结果
交替顺序的矩阵是-
23 50 4 34 9 89 75 1 61