Einfach 0 gelöst 0% Erfolgsquote

Pascalsches Dreieck

Baue die Zeilen auf, indem du benachbarte Einträge aus der vorherigen Zeile addierst.

Das lernst du

  • Jede Zeile aus der vorherigen bauen
  • Mit Listen von Listen arbeiten
  • Zeilen mit Binomialkoeffizienten verbinden

Problem

Die erste Zeile ist [1]. Jede weitere Zeile beginnt und endet mit 1. Jeder innere Eintrag ist die Summe der beiden direkt darüberliegenden Einträge. Gib die ersten rows Zeilen zurück, beginnend mit der einzelnen 1.

Implementiere pascals_triangle(rows).

Eingabe

rows: Wie viele Zeilen generiert werden sollen.

Ausgabe

Gib eine Liste von Zeilen zurück, beginnend oben; jede Zeile ist eine Liste von Ganzzahlen.

Einschränkungen

0 ≤ rows ≤ 60. Jeder Eintrag passt in einen vorzeichenbehafteten 64-Bit-Integer. Bei null Zeilen wird eine leere Liste zurückgegeben.

Beispiele

Beispiel 1
Eingabe:
rows = 4

Erwartete Ausgabe:
expected = [
    [1],
    [1, 1],
    [1, 2, 1],
    [1, 3, 3, 1]
]
Eingabe:
long long rows = 4;

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {
    {1},
    {1, 1},
    {1, 2, 1},
    {1, 3, 3, 1}
};
Eingabe:
long rows = 4;

Erwartete Ausgabe:
long[][] expected = new long[][] {
    new long[] {1},
    new long[] {1, 1},
    new long[] {1, 2, 1},
    new long[] {1, 3, 3, 1}
};

Erläuterung

Die 2 in Zeile 3 ist 1 + 1. Die beiden inneren 3en in Zeile 4 sind 1 + 2 und 2 + 1.

Beispiel 2
Eingabe:
rows = 0

Erwartete Ausgabe:
expected = []
Eingabe:
long long rows = 0;

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {};
Eingabe:
long rows = 0;

Erwartete Ausgabe:
long[][] expected = new long[][] {};

Erläuterung

Es werden keine Zeilen angefordert, daher wird eine leere Liste zurückgegeben.

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Jede Zeile beginnt und endet mit 1, und innere Werte entstehen aus den beiden Werten darüber.

Hinweis 2

Baue die Zeilen nacheinander aus der vorherigen Zeile auf, statt alles neu zu berechnen.

Hinweis 3

Behandle den Fall 0 Zeilen, indem du sofort eine leere Liste zurückgibst.

Erwartete Komplexität

Zeit O(rows^2), zusätzlicher Speicher O(rows^2)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.