Menu
CoddyTech

Next Greater Element I

Ti vengono forniti due array di interi distinti, nums1 e nums2, e ogni valore di nums1 compare anche in nums2. L’elemento successivo maggiore di un valore x è il primo valore alla destra di x in nums2 che è maggiore di x, oppure -1 se non esiste un valore del genere.

Restituisci un array contenente l’elemento successivo maggiore di ciascun valore di nums1, nell’ordine di nums1.

Funzione

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
i valori a cui rispondere, tutti presenti in nums2
nums2integer-array
l'array in cui guardi a destra di ciascun valore
Restituisceinteger-array
l'elemento successivo maggiore di ciascun valore di nums1, oppure -1, nell'ordine di nums1

Vincoli

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Tutti i valori in nums1 sono distinti e tutti i valori in nums2 sono distinti.
  • Ogni valore di nums1 è presente in nums2.

Esempi

Input
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Output
[8, -1, 6]
Spiegazione
Dopo il 3 in nums2 vengono 8 e 2, e 8 è il primo maggiore di 3. Dopo 8 c’è solo 2, quindi a 8 viene assegnato -1. Il valore subito dopo 1 è 6, che è già maggiore.

lock icon+14 test nascosti all’invio

challenge icon

Per approfondire

Per ogni posizione di nums2, riesci a restituire quanti passi a destra si trova il suo prossimo elemento maggiore, con la stessa singola scansione?

Ripristina il codice
def nextGreaterElement(nums1, nums2):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

[8, -1, 6]