Menu
CoddyTech

Next Greater Element I

Du erhältst zwei Arrays aus unterschiedlichen Ganzzahlen, nums1 und nums2, und jeder Wert von nums1 kommt auch in nums2 vor. Das nächstgrößere Element eines Werts x ist der erste Wert rechts von x in nums2, der größer als x ist, oder -1, wenn kein solcher Wert existiert.

Gib ein Array zurück, das das nächstgrößere Element jedes Werts von nums1 in der Reihenfolge von nums1 enthält.

Funktion

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
die zu beantwortenden Werte, die sich alle in nums2 befinden
nums2integer-array
das Array, in dem du rechts von jedem Wert nachsiehst
Gibt zurückinteger-array
das nächstgrößere Element jedes Werts von nums1 oder -1, in der Reihenfolge von nums1

Einschränkungen

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Alle Werte in nums1 sind verschieden, und alle Werte in nums2 sind verschieden.
  • Jeder Wert von nums1 kommt in nums2 vor.

Beispiele

Eingabe
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Ausgabe
[8, -1, 6]
Erklärung
Auf die 3 in nums2 folgen 8 und 2, und 8 ist die erste Zahl, die größer als 3 ist. Auf die 8 folgt nur 2, daher erhält 8 den Wert -1. Der Wert direkt nach 1 ist 6, der bereits größer ist.

lock icon+14 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du für jede Position von nums2 mit demselben einzigen Durchlauf zurückgeben, wie viele Schritte rechts davon das nächste größere Element liegt?

Code zurücksetzen
def nextGreaterElement(nums1, nums2):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

nums1 = [3, 8, 1]
nums2 = [1, 6, 3, 8, 2]

Erwartet

[8, -1, 6]