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]
الشرح
تحتوي المصفوفة على قيمتين 0، وثلاث قيم 1، وقيمتين 2، لذا فالنتيجة هي بالضبط: قيمتان 0، ثم ثلاث قيم 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]