Leetcode——66.加一
@author: ZZQ
@software: PyCharm
@file: leetcode66_加一.py
@time: 2018/11/29 16:07
要求:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
思路: 注意9999+1=10000这种情况
class Solution():
def __init__(self):
pass
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
dig_len = len(digits)
ans = [0]*(dig_len+1)
for i in range(dig_len-1, -1, -1):
ans[i+1] = digits[i]
# print ans
s = [0]*dig_len
for i in range(dig_len, -1, -1):
if i == dig_len:
if ans[i] == 9:
ans[i] = 0
s[i-1] = 1
else:
ans[i] = ans[i] + 1
else:
if ans[i] + s[i] > 9:
ans[i] = 0
s[i-1] = 1
else:
ans[i] = ans[i] + s[i]
if ans[0] != 0:
return ans
else:
return ans[1:]
CV小蜡肉