Menu
CoddyTech

Sort Colors

ניתן לך מערך nums שבו כל ערך הוא 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]
הסבר
המערך מכיל שני אפסים, שלוש אחדות ושני 2, ולכן התוצאה היא בדיוק כך: שני אפסים, אחר כך שלוש אחדות, ואז שני 2.

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

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]