Alle Herausforderungen
Mittel 0 gelöst 0% Erfolgsquote

Game of Life Schritt

Führe Conways Game of Life um eine Generation weiter.

Jede Zelle ist lebendig (1) oder tot (0) und hat bis zu 8 Nachbarn. In der nächsten Generation überlebt eine lebendige Zelle mit 2 oder 3 lebendigen Nachbarn, und eine tote Zelle wird mit genau 3 lebendigen Nachbarn lebendig. Zellen außerhalb des Gitters gelten als tot. Alle Zellen werden gleichzeitig aktualisiert.

Implementiere next_generation(grid).

Eingabe

grid: Ein rechteckiges Gitter aus 0 und 1.

Ausgabe

Gib die nächste Generation zurück.

Einschränkungen

0 ≤ Zeilen, Spalten ≤ 200

Beispiele

Beispiel 1
Eingabe:
grid = [
    [0, 1, 0],
    [0, 1, 0],
    [0, 1, 0]
]

Erwartete Ausgabe:
expected = [
    [0, 0, 0],
    [1, 1, 1],
    [0, 0, 0]
]
Eingabe:
std::vector<std::vector<long long>> grid = {
    {0, 1, 0},
    {0, 1, 0},
    {0, 1, 0}
};

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {
    {0, 0, 0},
    {1, 1, 1},
    {0, 0, 0}
};
Eingabe:
long[][] grid = new long[][] {
    new long[] {0, 1, 0},
    new long[] {0, 1, 0},
    new long[] {0, 1, 0}
};

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

Erläuterung

Der vertikale "Blinker" wird horizontal: Die mittlere Zelle überlebt und ihre linken und rechten Nachbarn werden geboren, sodass die mittlere Reihe gefüllt wird.

Beispiel 2
Eingabe:
grid = [
    [1, 1],
    [1, 1]
]

Erwartete Ausgabe:
expected = [
    [1, 1],
    [1, 1]
]
Eingabe:
std::vector<std::vector<long long>> grid = {
    {1, 1},
    {1, 1}
};

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {
    {1, 1},
    {1, 1}
};
Eingabe:
long[][] grid = new long[][] {
    new long[] {1, 1},
    new long[] {1, 1}
};

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

Erläuterung

Jede Zelle des 2×2-Blocks hat 3 Nachbarn, daher bleibt der Block unverändert.

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.