Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Triángulo de Pascal

Construye las filas sumando los elementos vecinos de la fila anterior.

Lo que aprenderás

  • Construir cada fila a partir de la anterior
  • Trabajar con listas de listas
  • Relacionar las filas con coeficientes binomiales

Problema

Ver original (inglés)

La primera fila es [1]. Cada fila posterior comienza y termina con 1. Cada elemento interior es la suma de los dos elementos situados inmediatamente encima. Devuelve las primeras rows filas, comenzando con el único 1.

Implementa pascals_triangle(rows).

Entrada

rows: Cuántas filas generar.

Salida

Devuelve una lista de filas, comenzando desde la parte superior; cada fila es una lista de enteros.

Restricciones

0 ≤ rows ≤ 60. Cada elemento cabe en un entero con signo de 64 bits. Si rows es cero, devuelve una lista vacía.

Ejemplos

Ejemplo 1
Entrada:
rows = 4

Salida esperada:
expected = [
    [1],
    [1, 1],
    [1, 2, 1],
    [1, 3, 3, 1]
]
Entrada:
long long rows = 4;

Salida esperada:
std::vector<std::vector<long long>> expected = {
    {1},
    {1, 1},
    {1, 2, 1},
    {1, 3, 3, 1}
};
Entrada:
long rows = 4;

Salida esperada:
long[][] expected = new long[][] {
    new long[] {1},
    new long[] {1, 1},
    new long[] {1, 2, 1},
    new long[] {1, 3, 3, 1}
};

Explicación

El 2 en la fila 3 es 1 + 1. Los dos 3 interiores en la fila 4 son 1 + 2 y 2 + 1.

Ejemplo 2
Entrada:
rows = 0

Salida esperada:
expected = []
Entrada:
long long rows = 0;

Salida esperada:
std::vector<std::vector<long long>> expected = {};
Entrada:
long rows = 0;

Salida esperada:
long[][] expected = new long[][] {};

Explicación

No se solicita ninguna fila, así que devuelve una lista vacía.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Cada fila empieza y termina con 1, y los valores interiores vienen de los dos valores de arriba.

Pista 2

Construye las filas una a una a partir de la fila anterior en vez de recalcular desde cero.

Pista 3

Gestiona el caso de cero filas devolviendo inmediatamente una lista vacía.

Complejidad esperada

tiempo O(rows^2), espacio extra O(rows^2)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.