当前位置:   article > 正文

Leetcode算法——66、加1(plus one)_plus one 算法

plus one 算法

给定一个非空数字序列,表示一个非负整数。

要求将这个整数加1。

序列中每个元素都是一个单独的数字,且最高位是数组的第一个元素。

最高位不是0,除非就是整个序列就只有一个0。

思路

按照手写加法的定义,从最低位开始加1,并计算每一位是否满10需要进1。

python实现

def plusOne(digits):
    """
    :type digits: List[int]
    :rtype: List[int]
    """
    need_add = 1 # 是否需要加1
    for i in range(len(digits)-1, -1, -1):
        if need_add == 0: # 没有进位,则加法结束
            break
        digits[i] += need_add
        need_add, digits[i] = divmod(digits[i], 10)
    if need_add == 1:
        digits = [1] + digits
    return digits

if '__main__' == __name__:
    digits = [9,9,9,9]
    print(plusOne(digits))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/63439
推荐阅读
相关标签
  

闽ICP备14008679号