Menu
CoddyTech

Next Greater Element I

Você recebe dois arrays de inteiros distintos, nums1 e nums2, e todos os valores de nums1 também aparecem em nums2. O próximo elemento maior de um valor x é o primeiro valor à direita de x em nums2 que seja maior que x, ou -1 se não existir tal valor.

Retorne um array contendo o próximo elemento maior de cada valor de nums1, na ordem de nums1.

Função

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
os valores a serem respondidos, todos encontrados em nums2
nums2integer-array
o array no qual você procura à direita de cada valor
Retornainteger-array
o próximo elemento maior de cada valor de nums1, ou -1, na ordem de nums1

Restrições

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Todos os valores em nums1 são distintos, e todos os valores em nums2 são distintos.
  • Todos os valores de nums1 aparecem em nums2.

Exemplos

Entrada
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Saída
[8, -1, 6]
Explicação
Depois do 3 em nums2 vêm 8 e 2, e 8 é o primeiro maior que 3. Depois do 8, vem apenas 2, então 8 recebe -1. O valor logo após 1 é 6, que já é maior.

lock icon+14 testes ocultos ao enviar

challenge icon

Para ir além

Para cada posição de nums2, você consegue retornar quantos passos à direita está seu próximo elemento maior, com a mesma passagem única?

Redefinir código
def nextGreaterElement(nums1, nums2):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

[8, -1, 6]