Я пытаюсь использовать рекурсию для решения вопроса, но у меня возникла запутанная ошибка. Если кому интересно, то это вопрос от leetcode: https://leetcode.com/problems/plus-one/
Я не мог понять ошибку, кто-нибудь может мне помочь с этим? Большое спасибо!
Вот мой код ниже:
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
i = -1
head = -len(digits)
def add_and_carry(x):
global i
if x + 1 == 10:
if i == head:
digits.insert(0, 1)
digists[i] = 0
i -= 1
add_and_carry(digits[i])
else:
digits[i] += 1
add_and_carry(digits[i])
return digits
Несмотря на то, что я определил переменную i, а также сделал ее глобальной с «глобальным» внутри тела внутренней функции, я все равно получаю ошибку:
NameError: global name 'i' is not defined