class Solution:
    def plusOne(self, digits: list[int]) -> list[int]:
        flag = 1
        # x = digits[-1] + 1
        # if x == 10: 
        #     flag = 1
        #     digits[-1] = 0
        # else:
        #     digits[-1] = x
        for i in range(len(digits) - 1, -1, -1):
            x = digits[i] + flag
            digits[i] = x
            if x == 10:
                flag = 1
                digits[i] = 0
            else:
                flag = 0
        if digits[0] == 0:
            digits.insert(0, 1)
        return digits

sol = Solution()
print(sol.plusOne([1, 2, 3]))
print(sol.plusOne([1, 2, 3, 4]))
print(sol.plusOne([9]))