Menu
CoddyTech

Subsets

Du erhältst eine Liste nums mit verschiedenen ganzen Zahlen. Gib jede Teilmenge davon zurück, einschließlich der leeren Menge und der vollständigen Liste, sodass n Werte 2^n Teilmengen ergeben. Schreibe die Werte jeder Teilmenge in aufsteigender Reihenfolge und liste die Teilmengen in lexikografischer Reihenfolge auf: Vergleiche zwei Teilmengen Wert für Wert; der erste Unterschied entscheidet, und eine Teilmenge, die den Anfang einer anderen bildet, kommt davor. Für [1, 2] lautet die Antwort [[], [1], [1, 2], [2]].

Funktion

subsets(nums: integer-array) → integer-2d-array
numsinteger-array
die Werte, alle unterschiedlich, in beliebiger Reihenfolge
Gibt zurückinteger-2d-array
jede Teilmenge, jeweils aufsteigend sortiert und in lexikografischer Reihenfolge aufgeführt

Einschränkungen

  • 1 ≤ nums.length ≤ 10
  • -10 ≤ nums[i] ≤ 10
  • Alle Werte in nums sind unterschiedlich.
  • nums kann in beliebiger Reihenfolge vorkommen.

Beispiele

Eingabe
nums = [3, 1, 2]
Ausgabe
[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]
Erklärung
Sortiert lauten die Werte 1, 2, 3, und drei Werte ergeben 2^3 = 8 Teilmengen. [1, 2] kommt vor [1, 2, 3], weil es dessen Anfang ist, und [1, 2, 3] kommt vor [1, 3], weil 2 an der zweiten Position kleiner als 3 ist.

lock icon+13 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du dieselbe Liste ohne Rekursion erstellen, indem du jede Teilmenge direkt aus der vorherigen bildest?

Code zurücksetzen
def subsets(nums):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

nums = [3, 1, 2]

Erwartet

[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]