def plusOne(digits):
    n = len(digits)
    
    # نبدأ من أقصى اليمين
    for i in range(n - 1, -1, -1):
        if digits[i] < 9:
            # إذا كان الرقم الحالي أقل من 9، نضيف 1 ونعيد النتيجة مباشرة
            digits[i] += 1
            return digits
        else:
            # إذا كان الرقم 9، نجعله 0 وننتقل إلى الرقم التالي
            digits[i] = 0
    
    # إذا انتهينا من الحلقة ولم نعد النتيجة، فهذا يعني أننا بحاجة إلى إضافة 1 في البداية
    return [1] + digits

# أمثلة
print(plusOne([1, 2, 3]))  # Output: [1, 2, 4]
print(plusOne([4, 3, 2, 1]))  # Output: [4, 3, 2, 2]
print(plusOne([9]))  # Output: [1, 0]
print(plusOne([9, 9, 9]))  # Output: [1, 0, 0, 0]8

