Imprimir la array en diagonal hacia abajo

Dada una array de tamaño n*n, imprima la array en el siguiente patrón.
 

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

Input :matrix[2][2]= { {1, 2},
                       {3, 4} }
Output : 1 2 3 4

Input :matrix[3][3]= { {1, 2, 3},
                       {4, 5, 6},
                       {7, 8, 9} }
Output : 1 2 4 3 5 7 6 8 9

A continuación se muestra la implementación de C++ para el patrón anterior. 
 

C++

// CPP program to print matrix downward
#include <bits/stdc++.h>
using namespace std;
 
void printMatrixDiagonallyDown(vector<vector<int> > matrix,
                                                    int n)
{
    // printing elements above and on
    // second diagonal
    for (int k = 0; k < n; k++) {
 
        // traversing downwards starting
        // from first row
        int row = 0, col = k;
        while (col >= 0) {
            cout << matrix[row][col] << " ";
            row++, col--;
        }
    }
 
    // printing elements below second
    // diagonal
    for (int j = 1; j < n; j++) {
 
        // traversing downwards starting
        // from last column
        int col = n - 1, row = j;
        while (row < n) {
            cout << matrix[row][col] << " ";
            row++, col--;
        }
    }
}
 
int main()
{
    vector<vector<int> > matrix{ { 1, 2, 3 },
                                 { 4, 5, 6 },
                                 { 7, 8, 9 } };
    int n = 3;
    printMatrixDiagonallyDown(matrix, n);
    return 0;
}

Java

// JAVA program to print
// matrix downward
class GFG{
static void printMatrixDiagonallyDown(int[][] matrix,
                                      int n)
{
  // printing elements above and on
  // second diagonal
  for (int k = 0; k < n; k++)
  {
    // traversing downwards
    // starting from first row
    int row = 0, col = k;
    while (col >= 0)
    {
      System.out.print(matrix[row][col] + " ");
      row++;
      col--;
    }
  }
 
  // printing elements below
  // second diagonal
  for (int j = 1; j < n; j++)
  {
    // traversing downwards starting
    // from last column
    int col = n - 1, row = j;
    while (row < n)
    {
      System.out.print(matrix[row][col] + " ");
      row++;
      col--;
    }
  }
}
 
// Driver code
public static void main(String[] args)
{
  int[][] matrix = {{1, 2, 3},
                    {4, 5, 6},
                    {7, 8, 9}};
  int n = 3;
  printMatrixDiagonallyDown(matrix, n);
}
}
 
// This code is contributed by Rajput-Ji

Python 3

# Python 3 program to print matrix downward
 
def printMatrixDiagonallyDown(matrix,n):
    # printing elements above and on
    # second diagonal
    for k in range(n):
        # traversing downwards starting
        # from first row
        row = 0
        col = k
        while (col >= 0):
            print(matrix[row][col],end = " ")
            row += 1
            col -= 1
 
    # printing elements below second
    # diagonal
    for j in range(1,n):
        # traversing downwards starting
        # from last column
        col = n - 1
        row = j
        while (row < n):
            print(matrix[row][col],end = " ")
            row += 1
            col -= 1
 
if __name__ == '__main__':
    matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
    n = 3
    printMatrixDiagonallyDown(matrix, n)
 
# This code is contributed by Surendra_Gangwar

C#

// C# program to print
// matrix downward
using System;
class GFG{
static void printMatrixDiagonallyDown(int[,] matrix,
                                      int n)
{
  // printing elements above and on
  // second diagonal
  for (int k = 0; k < n; k++)
  {
    // traversing downwards
    // starting from first row
    int row = 0, col = k;
     
    while (col >= 0)
    {
      Console.Write(matrix[row,col] + " ");
      row++;
      col--;
    }
  }
 
  // printing elements below
  // second diagonal
  for (int j = 1; j < n; j++)
  {
    // traversing downwards starting
    // from last column
    int col = n - 1, row = j;
    while (row < n)
    {
      Console.Write(matrix[row,col] + " ");
      row++;
      col--;
    }
  }
}
 
// Driver code
public static void Main(String[] args)
{
  int[,] matrix = {{1, 2, 3},
                   {4, 5, 6},
                   {7, 8, 9}};
  int n = 3;
  printMatrixDiagonallyDown(matrix, n);
}
}
 
// This code is contributed by Amit Katiyar

Javascript

<script>
 
// JavaScript program to print
// matrix downward
function printMatrixDiagonallyDown(matrix,n)
{
// printing elements above and on
// second diagonal
for (let k = 0; k < n; k++)
{
    // traversing downwards
    // starting from first row
    let row = 0, col = k;
    while (col >= 0)
    {
    document.write(matrix[row][col] + " ");
    row++;
    col--;
    }
}
 
// printing elements below
// second diagonal
for (let j = 1; j < n; j++)
{
    // traversing downwards starting
    // from last column
    let col = n - 1, row = j;
    while (row < n)
    {
    document.write(matrix[row][col] + " ");
    row++;
    col--;
    }
}
}
 
// Driver code
 
let matrix = [[1, 2, 3],
                    [4, 5, 6],
                    [7, 8, 9]];
let n = 3;
printMatrixDiagonallyDown(matrix, n);
 
// This code is contributed by sravan kumar
 
</script>

Producción:  

1 2 4 3 5 7 6 8 9

Complejidad temporal: O(n 2 ) 

Espacio Auxiliar: 1

Publicación traducida automáticamente

Artículo escrito por Dhirendra121 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *