Menu
CoddyTech

Sort Colors

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

פונקציה

sortColors(nums: integer-array) → integer-array
numsinteger-array
הצבעים, כל אחד מהם 0, 1 או 2
מחזירהinteger-array
אותם ערכים, תחילה כל ה־0, לאחר מכן כל ה־1, ואז כל ה־2

אילוצים

  • 1 ≤ nums.length ≤ 1.5 × 104
  • כל nums[i] הוא 0, 1 או 2.
  • ייתכן שצבע חסר, והמערך עשוי להכיל צבע יחיד.

דוגמאות

קלט
nums = [2, 1, 0, 2, 0, 1, 1]
פלט
[0, 0, 1, 1, 1, 2, 2]
הסבר
המערך מכיל שני אפסים, שלוש פעמים 1 ופעמיים 2, ולכן התוצאה היא בדיוק כך: שני אפסים, אחריהם שלוש פעמים 1, ואחריהם פעמיים 2.
challenge icon

שאלת המשך

מה היית משנה אילו היו k צבעים במקום שלושה, כאשר k קטן בהרבה מאורך המערך?

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

nums = [2, 1, 0, 2, 0, 1, 1]

הפלט הצפוי

[0, 0, 1, 1, 1, 2, 2]