We can do it with string operations, or just do it for list of numbers.
Solution 1:
# T:O(n) S:O(1)
class Solution:
# @param {integer[]} digits
# @return {integer[]}
def plusOne(self, digits): # offer 3-line and 1-line version
'''
s = ''.join([str(x) for x in digits])
s = list(str(int(s) + 1))
return list([int(x) for x in s])
'''
return list(int(x) for x in list(str(int(''.join([str(x) for x in digits]))+1)))
Run Time: 68 msSolution 2:
# T:O(n) S:O(1)
class Solution:
# @param digits, a list of integer digits
# @return a list of integer digits
def plusOne(self, digits):
carry = 1
for i in reversed(xrange(len(digits))):
digits[i] += carry
carry = digits[i] / 10
digits[i] %= 10
if carry:
digits = [1] + digits
return digits
Run Time: 60 ms
No comments:
Post a Comment