Spiral Print A Matrix

Dear Sciaku Learner you are not logged in or not enrolled in this course.

Please Click on login or enroll now button.

If you have any query feel free to chat us!

Happy Coding! Happy Learning!

Lecture 53 :- Spiral Print A Matrix

Spiral printing a matrix means printing the elements in a spiral pattern, starting from the top-left corner and moving in a clockwise direction.

To achieve this, we use four variables to keep track of the current boundaries of the spiral:

  1. top: The topmost row index.
  2. bottom: The bottommost row index.
  3. left: The leftmost column index.
  4. right: The rightmost column index.

We start by printing the elements in the top row from left to right. Then, we increment top to move down to the next row and print the elements in the rightmost column from top to bottom. Next, we decrement right to move to the left column and print the elements in the bottom row from right to left. Finally, we increment left to move to the right column and print the elements in the leftmost column from bottom to top. We repeat these steps until we have printed all the elements in the matrix.

Here's the C++ code to perform spiral printing on a given matrix:

cppCopy code

#include <iostream> #include <vector> void spiralPrintMatrix(std::vector<std::vector<int>>& matrix) {    int rows = matrix.size();    int cols = matrix[0].size();    int top = 0;    int bottom = rows - 1;    int left = 0;    int right = cols - 1;    while (top <= bottom && left <= right) {        // Print top row        for (int i = left; i <= right; i++) {            std::cout << matrix[top][i] << " ";        }        top++;        // Print rightmost column        for (int i = top; i <= bottom; i++) {            std::cout << matrix[i][right] << " ";        }        right--;        // Print bottom row (if applicable)        if (top <= bottom) {            for (int i = right; i >= left; i--) {                std::cout << matrix[bottom][i] << " ";            }            bottom--;        }        // Print leftmost column (if applicable)        if (left <= right) {            for (int i = bottom; i >= top; i--) {                std::cout << matrix[i][left] << " ";            }            left++;        }    } } int main() {    std::vector<std::vector<int>> matrix = {        {1, 2, 3, 4},        {5, 6, 7, 8},        {9, 10, 11, 12},        {13, 14, 15, 16}    };    spiralPrintMatrix(matrix);    return 0; }

Example Output:

Copy code

1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10

In this code, the spiralPrintMatrix function performs the spiral printing on the given matrix. The time complexity of this approach is O(rows * cols), where rows and cols are the dimensions of the matrix.

7. Week3 - Assignments

Comments: 2

profile
@mk.info.work
17-Feb-2024, 10:20 PM

SCIAKU Team please upload 1st video of TREE please please please, please

profile
@na3744
23-Feb-2024, 02:52 AM

I bought this course, it worth it!

profile
@mk.info.work
15-Nov-2023, 10:25 PM

Hi i want to buy this course but you dont have master card payment method please let me know how i can buy it

profile
@sciaku1
11-Jan-2024, 03:23 PM

Dear mk.info.work, Now we have all types of payment options. If you need to purchase just checkout our official website

Frequently Asked Questions (FAQs)

How do I register on Sciaku.com?
How can I enroll in a course on Sciaku.com?
Are there free courses available on Sciaku.com?
How do I purchase a paid course on Sciaku.com?
What payment methods are accepted on Sciaku.com?
How will I access the course content after purchasing a course?
How long do I have access to a purchased course on Sciaku.com?
How do I contact the admin for assistance or support?
Can I get a refund for a course I've purchased?
How does the admin grant access to a course after payment?