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
广告