Menu
CoddyTech

Next Greater Element I

Kamu mendapatkan dua array berisi bilangan bulat yang berbeda, nums1 dan nums2, dan setiap nilai dalam nums1 juga muncul dalam nums2. Elemen lebih besar berikutnya dari suatu nilai x adalah nilai pertama di sebelah kanan x dalam nums2 yang lebih besar dari x, atau -1 jika tidak ada nilai seperti itu.

Kembalikan sebuah array yang berisi elemen lebih besar berikutnya dari setiap nilai dalam nums1, sesuai urutan dalam nums1.

Fungsi

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
nilai-nilai yang harus dijawab, semuanya ditemukan di nums2
nums2integer-array
array yang di dalamnya kamu melihat ke sebelah kanan setiap nilai
Mengembalikaninteger-array
elemen lebih besar berikutnya dari setiap nilai nums1, atau -1, sesuai urutan nums1

Batasan

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Semua nilai dalam nums1 berbeda, dan semua nilai dalam nums2 berbeda.
  • Setiap nilai nums1 muncul di nums2.

Contoh

Input
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Output
[8, -1, 6]
Penjelasan
Setelah angka 3 di nums2, ada 8 dan 2, dan 8 adalah angka pertama yang lebih besar. Setelah 8 hanya ada 2, jadi 8 mendapat nilai -1. Tepat setelah 1 ada 6, yang sudah lebih besar.
challenge icon

Pertanyaan lanjutan

Untuk setiap posisi nums2, bisakah kamu mengembalikan jumlah langkah ke kanan menuju elemen berikutnya yang lebih besar dengan satu kali lintasan yang sama?

Reset kode
def nextGreaterElement(nums1, nums2):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

[8, -1, 6]