C++交替打印矩阵(从左到右,然后从右到左)


在这个问题中,我们得到一个二维数组。我们的任务是从第一行开始,从左到右打印所有数组元素,然后下一行从右到左打印,依次类推。

让我们来看一个例子来理解这个问题。

Input: array = {
   {2, 5}
   {4, 9}
}
Output: 2 5 9 4

为了解决这个问题,我们将按照给定的方向(从左到右和从右到左)打印每一行的元素。并且一个标志元素将在每次迭代后切换打印方向。

这是一个简单高效的解决方案,时间复杂度为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

更新于:2020年1月27日

408 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告