Wednesday, June 4, 2025

Diagonal Traversal

 eg. 

1     2     3     4

5     6     7     8

9    10   11   12

13  14   15   16




Output: 1 6 11 16 2 7 12 3 8




Approach:
  • number of diagonals = arr.length
  • all the diagonals are starting from i=0,
  • till j=arr.length that will act as right wall
package jan24_2D_Array;

public class DiagonalTraversal {
public static void main(String[] args) {

int[][] arr = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};

/*
Time Complexity:
Best Case: O(n^2) – All diagonals are visited once.
Average Case: O(n^2) – Diagonal traversal over matrix elements.
Worst Case: O(n^2) – Covers upper half of matrix diagonals.

Space Complexity:
Best/Average/Worst Case: O(1) – No extra space used, in-place processing.
*/


for (int diagonal = 0; diagonal < arr.length; diagonal++) {
for (int i = 0, j = diagonal; j < arr.length; i++, j++) {
System.out.print(arr[i][j] + "\t");
}
}
}
}


CaseTime ComplexityExplanationSpace ComplexityExplanation
BestO(n²)All diagonals are visited onceO(1)No extra space used
AverageO(n²)Diagonal traversal over matrixO(1)In-place processing
WorstO(n²)Covers upper half of matrixO(1)No additional memory used

No comments:

Post a Comment

Diagonal Traversal

 eg.  1       2       3       4 5      6       7       8 9    10    11     12 13  14   15    16 Output: 1 6 11 16 2 7 12 3 8 4  Approach:...