Menu
CoddyTech
flag Ar iconالعربيةdown icon

Sort Colors

لديك مصفوفة nums تكون فيها كل قيمة إما 0 أو 1 أو 2. تخيّل أنها تمثّل ثلاثة ألوان، مثل الأحمر والأبيض والأزرق. أعد ترتيب المصفوفة بحيث تأتي كل الأصفار أولًا، ثم كل الآحاد، ثم كل الأثنين، وأعِدها.

حلّ المسألة دون استخدام دالة فرز من مكتبة. الفكرة هي الاستفادة مما تعرفه عن القيم.

الدالة

sortColors(nums: integer-array) → integer-array
numsinteger-array
الألوان، كلٌّ منها 0 أو 1 أو 2
تُرجعinteger-array
القيم نفسها، مع كل الأصفار أولًا، ثم كل الآحاد، ثم كل الاثنينات

القيود

  • 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]