Trong bài toán này, chúng ta được cung cấp một mảng 2D. Nhiệm vụ của chúng ta là in tất cả các phần tử của mảng bắt đầu từ hàng đầu tiên, từ trái sang phải, sau đó từ phải sang trái ở hàng tiếp theo và lặp lại từ trái sang phải, v.v.
Hãy lấy một ví dụ để hiểu vấn đề.
Input: array = { {2, 5} {4, 9} } Output: 2 5 9 4
Để giải quyết vấn đề này, chúng ta sẽ in các phần tử theo hướng cho trước (LtoR và RtoL) của một hàng. Và một phần tử cờ để hiển thị hướng in sẽ chuyển đổi sau mỗi lần lặp lại.
Đây là một giải pháp dễ dàng và hiệu quả với độ phức tạp về thời gian = O (R * C)
Ví dụ
Chương trình cho thấy việc triển khai giải pháp của chúng tôi
#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; }
Đầu ra
Ma trận theo thứ tự thay thế là -
23 50 4 34 9 89 75 1 61