Menu
CoddyTech

Minimum Size Subarray Sum

يُعطى لك عدد صحيح موجب target ومصفوفة nums من الأعداد الصحيحة الموجبة. أوجد أقصر مصفوفة فرعية (مجموعة متجاورة من العناصر) يكون مجموعها أكبر من أو يساوي target، وأعِد طولها. إذا لم تصل أي مصفوفة فرعية إلى target، فأعِد 0.

الدالة

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
المجموع الذي يجب أن يبلغه المصفوفة الفرعية أو يتجاوزه
numsinteger-array
مصفوفة الأعداد الصحيحة الموجبة
تُرجعinteger
طول أقصر مصفوفة فرعية مجموعها لا يقل عن target، أو 0 إذا لم توجد أيٌّ منها

القيود

  • 1 ≤ target ≤ 109
  • 1 ≤ nums.length ≤ 2 × 104
  • 1 ≤ nums[i] ≤ 104

أمثلة

المدخلات
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
المخرجات
3
الشرح
لا يصل أي جارين إلى 15: أكبر زوج هو 9 + 3 = 12. أما ثلاثة فتصل: 4 + 2 + 9 = 15 و9 + 3 + 7 = 19، لذا فالإجابة هي 3.
challenge icon

سؤال إضافي

كيف ستحلّها إذا كان بإمكان nums أن يحتوي أيضًا على أصفار وأعداد سالبة، بحيث لا تعود النافذة المنزلقة صالحة؟

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

اختبار #1

اختبار #2

اختبار #3

الوسائط

target = 15
nums = [4, 2, 9, 3, 7, 1, 5]

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

3