Menu
CoddyTech

Majority Element

קלגיבובpython iconjava iconcpp iconc iconjs icon+10

ניתן לך מערך של מספרים שלמים nums באורך n. ערך אחד מופיע בו יותר מ־n / 2 פעמים, והוא נקרא האיבר הרוב. החזר אותו. ערך שתופס יותר ממחצית המערך הוא תמיד יחיד, ולכן יש בדיוק תשובה אחת.

פונקציה

majorityElement(nums: integer-array) → integer
numsinteger-array
מערך של מספרים שלמים, כאשר ערך אחד ממלא יותר ממחצית ממנו
מחזירהinteger
הערך שמופיע יותר מ־n / 2 פעמים

אילוצים

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • ערך אחד מופיע יותר מ־nums.length / 2 פעמים.

דוגמאות

קלט
nums = [3, 9, 3, 3, 4]
פלט
3
הסבר
3 מופיע שלוש פעמים בחמישה איברים. שלוש גדול מ־5 / 2 = 2.5, ו־9 ו־4 מופיעים פעם אחת כל אחד.
challenge icon

שאלת המשך

האם תוכל למצוא כל ערך שמופיע יותר מ־n / 3 פעמים, בזמן O(n) ועם O(1) זיכרון נוסף?

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

בדיקה #1

בדיקה #2

ארגומנט

nums = [3, 9, 3, 3, 4]

הפלט הצפוי

3