Print K’th element in spiral form of matrix

Given a 2D Matrix of order n X m, print K’th element in the spiral form of the matrix. See the following examples.
Examples:

Input: mat[][] = 
          {{1, 2, 3, 4}
           {5, 6, 7, 8}
           {9, 10, 11, 12}
           {13, 14, 15, 16}}
       k = 6
Output: 12
Explanation: The elements in spiral order is 
1, 2, 3, 4, 8, 12, 16, 15...
so the 6th element is 12

Input: mat[][] =
       {{1, 2, 3, 4, 5, 6}
        {7, 8, 9, 10, 11, 12}
        {13, 14, 15, 16, 17, 18}}
       k = 17
Output: 10
Explanation: The elements in spiral order is 
1, 2, 3, 4, 5, 6, 12, 18, 17,
16, 15, 14, 13, 7, 8, 9, 10, 11 
so the 17 th element is 10.  

Simple Approah: One simple solution is to start traversing matrix in spiral form Print Spiral Matrix and start a counter i.e; count = 0. Whenever count gets equal to K, print that element.

Efficient Approach: While traversing the array in spiral order, a loop is used to traverse the sides. So if it can be found out that the kth element is in the given side then the kth element can be found out in constant time. This can be done recursively as well as iteratively.

This article is contributed by Shashank Mishra (Gullu). If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




Article Tags :
Practice Tags :