加一 一种解法(Python)

加一 一种解法(Python),第1张

逆序找出第一个不为9的数 加一 其后所有位置0 若都为9 则直接变为 [1,0,0…]
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        for i in range(len(digits) - 1, -1, -1):
            if digits[i] != 9:
                digits[i] = digits[i] + 1
                for j in range(i + 1, len(digits)):
                    digits[j] = 0
                return digits
        return [1] + [0] * len(digits)

下面稍微优化了下

  • 为9则直接赋值0(第一个不为9的数出现前)
  • 第一个不为9的数加一,然后直接返回
  • 若全是9,则原数组已经都被改为[0,0,0…] 在之前加上[1] 即可
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        for i in range(len(digits) - 1, -1, -1):
            if digits[i] == 9:
                digits[i] = 0
            else:
                digits[i] = digits[i] + 1
                return digits
        return [1] + digits

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/885998.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-14
下一篇2022-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存