Menu
CoddyTech

Next Greater Element I

Recibes dos arreglos de enteros distintos, nums1 y nums2, y todos los valores de nums1 también aparecen en nums2. El siguiente elemento mayor de un valor x es el primer valor a la derecha de x en nums2 que sea mayor que x, o -1 si no existe tal valor.

Devuelve un arreglo que contenga el siguiente elemento mayor de cada valor de nums1, en el orden de nums1.

Función

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
los valores que se deben responder, todos ellos encontrados en nums2
nums2integer-array
el arreglo en el que buscas a la derecha de cada valor
Devuelveinteger-array
el siguiente elemento mayor de cada valor de nums1, o -1, en el orden de nums1

Restricciones

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Todos los valores de nums1 son distintos, y todos los valores de nums2 son distintos.
  • Cada valor de nums1 aparece en nums2.

Ejemplos

Entrada
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Salida
[8, -1, 6]
Explicación
Después del 3 en nums2 vienen 8 y 2, y 8 es el primero que es mayor que 3. Después del 8 solo viene 2, así que a 8 le corresponde -1. El valor justo después de 1 es 6, que ya es mayor.

lock icon+14 pruebas ocultas al enviar

challenge icon

Para ir más allá

Para cada posición de nums2, ¿puedes devolver cuántos pasos a la derecha está su siguiente elemento mayor, en una sola pasada?

Restablecer código
def nextGreaterElement(nums1, nums2):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

[8, -1, 6]