-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path66.PlusOne.py
30 lines (27 loc) · 964 Bytes
/
66.PlusOne.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution:
# def plusOne(self, digits: List[int]) -> List[int]:
# # recursive implementation
# if digits[-1] != 9:
# new_digits = list(digits)
# new_digits[-1] += 1
# return new_digits
# elif len(digits) == 1:
# return [1, 0]
# else:
# new_digits = list(digits)
# final_digits = self.plusOne(new_digits[:-1])
# final_digits.append(0)
# return final_digits
def plusOne(self, digits: List[int]) -> List[int]:
# iterative implemtation
length = len(digits) - 1
need_extra_digit = False
while length >= 0:
if digits[length] != 9:
digits[length] += 1
return digits
if digits[length] == 9:
digits[length] = 0
length -= 1
digits.insert(0, 1)
return digits