Menu
CoddyTech
flag Ar iconالعربيةdown icon

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]