Menu
CoddyTech

First Missing Positive

لديك مصفوفة غير مرتبة من الأعداد الصحيحة nums. أعد أصغر عدد صحيح موجب (1 أو أكبر) لا يظهر في nums. قد تحتوي المصفوفة على أعداد سالبة وأصفار وقيم مكررة وقيم أكبر بكثير من طولها.

الدالة

firstMissingPositive(nums: integer-array) → integer
numsinteger-array
الأعداد الصحيحة غير المرتبة، التي قد تتكرر وقد تكون سالبة أو صفرًا أو كبيرة جدًا
تُرجعinteger
أصغر عدد صحيح موجب غير موجود في nums

القيود

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • القيم ليست مرتبة بأي ترتيب معيّن، وقد تتكرر.

أمثلة

المدخلات
nums = [5, -2, 1, 3, 2, 9]
المخرجات
4
الشرح
الأعداد 1 و2 و3 كلها موجودة في المصفوفة، أما 4 فليس موجودًا، لذا فالإجابة هي 4. ولا يهم العددان 5 و9 عند غياب قيمة أصغر.
challenge icon

سؤال إضافي

هل يمكنك إيجاد الإجابة في زمن O(n) مع استخدام ذاكرة إضافية O(1) فقط؟

إعادة ضبط الشيفرة
def firstMissingPositive(nums):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

وسيط

nums = [5, -2, 1, 3, 2, 9]

الإخراج المتوقع

4