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 ערכים.

lock icon+17 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

נניח שהערכים מגיעים בזה אחר זה, ואחרי כל ערך עליך לדווח על הרצף הארוך ביותר עד כה. האם תוכל לעדכן את התשובה בזמן ממוצע של O(1) לכל ערך?

איפוס הקוד
def longestConsecutive(nums):
    # כתבו את הקוד כאן
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

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

צפוי

4