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 aufeinanderfolgende Sequenz 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 aufeinanderfolgenden Sequenz zurück. Ein Wert, der mehr als einmal vorkommt, zählt nur einmal.

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 in nums

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 verstreut sind. Die andere Folge, von 39 bis 41, umfasst nur 3 Werte.

lock icon+17 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Angenommen, die Werte treffen nacheinander ein und nach jedem Wert musst du die längste zusammenhängende Folge bis dahin angeben. Kannst du die Antwort in durchschnittlich O(1) Zeit pro Wert aktuell halten?

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

Fall 1

Fall 2

Fall 3

Eingabe

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

Erwartet

4