码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Plus One

时间:2017-06-20 20:16:14      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:hub   ref   parent   return   否则   lines   pretty   app   string   

LeetCode解题之Plus One


原题

给一个由包括一串数字的列表组成的非负整数加上一。

注意点:

  • 列表前面的数字表示高位
  • 注意最高位也可能进位

样例:

输入: [1, 2, 3, 4, 9]

输出: [1, 2, 3, 5, 0]

解题思路

从低位到高位。假设后一位有进位的话,那么该位要加上一,否则退出循环。假设最高位也进位,那么在列表前要插入一个一。

AC源代码

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        carry = 1
        for i in range(len(digits) - 1, -1, -1):
            digits[i] += carry
            if digits[i] < 10:
                carry = 0
                break
            else:
                digits[i] -= 10
        if carry == 1:
            digits.insert(0, 1)
        return digits


if __name__ == "__main__":
    assert Solution().plusOne([1, 2, 3, 4, 9]) == [1, 2, 3, 5, 0]
    assert Solution().plusOne([9]) == [1, 0]

欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源代码。

LeetCode Plus One

标签:hub   ref   parent   return   否则   lines   pretty   app   string   

原文地址:http://www.cnblogs.com/yutingliuyl/p/7055978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!