Menu
CoddyTech

Longest Consecutive Sequence

MittelHashingpython iconjava iconcpp iconc iconjs icon+10

Du erhältst ein Array von Ganzzahlen nums in keiner bestimmten Reihenfolge. Eine Folge aufeinanderfolgender Zahlen ist eine Gruppe von Werten x, x+1, x+2 und so weiter, von denen jeder irgendwo in nums vorkommt. Gib die Länge der längsten Folge aufeinanderfolgender Zahlen zurück. Ein Wert, der mehr als einmal vorkommt, wird nur einmal gezählt.

Funktion

longestConsecutive(nums: integer-array) → integer
numsinteger-array
die ganzen Zahlen, in beliebiger Reihenfolge, Wiederholungen sind erlaubt
Gibt zurückinteger
die Länge der längsten Folge aufeinanderfolgender Werte, die in nums vorkommt

Einschränkungen

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • Werte können sich wiederholen. Die Positionen im Array spielen keine Rolle, sondern nur, welche Werte vorhanden sind.

Beispiele

Eingabe
nums = [40, 4, 39, 1, 3, 2, 41]
Ausgabe
4
Erklärung
1, 2, 3 und 4 sind alle vorhanden, eine Folge von 4, obwohl sie über das Array verteilt sind. Die andere Folge, von 39 bis 41, hat nur 3 Werte.
challenge icon

Weiterführende Frage

Angenommen, Werte treffen einzeln ein und nach jedem musst du die längste bisherige Folge melden. Kannst du die Antwort im Durchschnitt in O(1)-Zeit pro Wert aktuell halten?

Code zurücksetzen
def longestConsecutive(nums):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

nums = [40, 4, 39, 1, 3, 2, 41]

Erwartete Ausgabe

4