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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.