Menu
CoddyTech

Next Greater Element I

Даны два массива различных целых чисел, nums1 и nums2, причём каждое значение из nums1 также встречается в nums2. Следующий больший элемент значения x — это первое расположенное справа от x в nums2 значение, которое больше x, или -1, если такого значения нет.

Верните массив, содержащий следующие большие элементы каждого значения из nums1 в том же порядке, что и в nums1.

Функция

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
значения, которые нужно указать в ответе, все они найдены в nums2
nums2integer-array
массив, в котором вы ищете справа от каждого значения
Возвращаетinteger-array
следующий больший элемент для каждого значения из nums1 или -1, в порядке следования nums1

Ограничения

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Все значения в nums1 различны, и все значения в nums2 различны.
  • Каждое значение из nums1 встречается в nums2.

Примеры

Ввод
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Вывод
[8, -1, 6]
Пояснение
После 3 в nums2 идут 8 и 2, и 8 — первое число, которое больше 3. После 8 следует только 2, поэтому для 8 получается -1. Значение сразу после 1 — 6, оно уже больше.

lock icon+14 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Для каждой позиции в nums2 можешь вернуть, сколько шагов вправо находится её следующий больший элемент, за тот же единственный проход?

Сбросить код
def nextGreaterElement(nums1, nums2):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

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

Ожидается

[8, -1, 6]