Menu
CoddyTech

Next Greater Element I

Otrzymujesz dwie tablice różnych liczb całkowitych, nums1 i nums2, a każda wartość z nums1 występuje również w nums2. Następny większy element wartości x to pierwsza wartość po prawej stronie x w nums2, która jest większa od x, lub -1, jeśli taka wartość nie istnieje.

Zwróć tablicę zawierającą następny większy element każdej wartości z nums1, w kolejności zgodnej z nums1.

Funkcja

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
wartości do odpowiedzi, wszystkie znajdują się w nums2
nums2integer-array
tablica, w której patrzysz na prawo od każdej wartości
Zwracainteger-array
następny większy element każdej wartości nums1 lub -1, w kolejności nums1

Ograniczenia

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Wszystkie wartości w nums1 są różne, a wszystkie wartości w nums2 są różne.
  • Każda wartość z nums1 występuje w nums2.

Przykłady

Wejście
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Wyjście
[8, -1, 6]
Wyjaśnienie
Po 3 w nums2 występują 8 i 2, a 8 jest pierwszą wartością większą od 3. Po 8 występuje tylko 2, więc 8 otrzymuje -1. Wartość zaraz po 1 to 6, która jest już większa.

lock icon+14 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Dla każdej pozycji w nums2 czy potrafisz zwrócić, o ile kroków w prawo znajduje się następny większy element, wykonując to samo pojedyncze przejście?

Zresetuj kod
def nextGreaterElement(nums1, nums2):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

[8, -1, 6]