Menu
CoddyTech

Summary Ranges

لديك مصفوفة مرتبة nums من أعداد صحيحة متميزة. قسّمها إلى أقل عدد ممكن من النطاقات ذات الأعداد الصحيحة المتتالية، بحيث تنتمي كل قيمة إلى نطاق واحد بالضبط. اكتب النطاق a..b كنص "a->b"، أو "a" عندما يحتوي على قيمة واحدة. أعد النطاقات بترتيب تصاعدي.

الدالة

summaryRanges(nums: integer-array) → string-array
numsinteger-array
المصفوفة المرتبة من الأعداد الصحيحة المتميزة
تُرجعstring-array
النطاقات كنص، من أصغر القيم إلى أكبرها

القيود

  • 1 ≤ nums.length ≤ 5000
  • -109 ≤ nums[i] ≤ 109
  • nums مرتبة بترتيب تصاعدي ولا تحتوي على عناصر مكررة.

أمثلة

المدخلات
nums = [0, 1, 2, 5, 6, 9]
المخرجات
["0->2", "5->6", "9"]
الشرح
تأتي 0, 1, 2 متتالية، لذا تشكّل "0->2". تقفز الأعداد من 2 إلى 5، فتبدأ نطاقًا جديدًا هو "5->6"، ويبقى 9 منفردًا على هيئة "9".
challenge icon

سؤال إضافي

افترض أن nums قد تحتوي على عناصر مكررة، مثل [1, 2, 2, 3]. ما الذي ستغيّره كي تستمر في طباعة "1->3"؟

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

اختبار #1

اختبار #2

وسيط

nums = [0, 1, 2, 5, 6, 9]

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

["0->2", "5->6", "9"]