Menu
CoddyTech

Longest Consecutive Sequence

متوسطالتجزئةpython iconjava iconcpp iconc iconjs icon+10

لديك مصفوفة من الأعداد الصحيحة nums بترتيب غير محدد. التسلسل المتتالي هو مجموعة من القيم x وx+1 وx+2 وهكذا، بحيث تظهر كل قيمة منها في موضع ما ضمن nums. أعد طول أطول تسلسل متتالٍ. تُحتسب القيمة التي تظهر أكثر من مرة مرة واحدة.

الدالة

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

القيود

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • قد تتكرر القيم. لا تهم المواضع في المصفوفة، بل المهم هو القيم الموجودة.

أمثلة

المدخلات
nums = [40, 4, 39, 1, 3, 2, 41]
المخرجات
4
الشرح
القيم 1 و2 و3 و4 موجودة كلها، وهي سلسلة من 4 قيم، رغم أنها متناثرة في المصفوفة. أما السلسلة الأخرى، من 39 إلى 41، فلا تضم سوى 3 قيم.
challenge icon

سؤال إضافي

افترض أن القيم تصل واحدة تلو الأخرى، وبعد كل قيمة يجب أن تعرض أطول سلسلة متتالية حتى الآن. هل يمكنك إبقاء الإجابة مُحدَّثة بمتوسط زمن O(1) لكل قيمة؟

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

اختبار #1

اختبار #2

اختبار #3

وسيط

nums = [40, 4, 39, 1, 3, 2, 41]

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

4