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 ms
Solution 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 digitsRun Time: 60 ms
No comments:
Post a Comment