• leetcode66 Plus One


     1 """
     2 Given a non-empty array of digits representing a non-negative integer, plus one to the integer.
     3 The digits are stored such that the most significant digit is at the head of the list, and each element in the array contain a single digit.
     4 You may assume the integer does not contain any leading zero, except the number 0 itself.
     5 Example 1:
     6 Input: [1,2,3]
     7 Output: [1,2,4]
     8 Explanation: The array represents the integer 123.
     9 Example 2:
    10 Input: [4,3,2,1]
    11 Output: [4,3,2,2]
    12 Explanation: The array represents the integer 4321.
    13 """
    14 """
    15 解法一:从后向前迭代。当迭代到最高位时如果要进位
    16 需要再次判断,运用了insert(a, b)函数。表示在位置a前插入b元素
    17 """
    18 class Solution1:
    19     def plusOne(self, digits):
    20         carry = 0
    21         digits[len(digits)-1] += 1
    22         for i in range(len(digits)-1, -1, -1):
    23             if digits[i]+carry == 10:
    24                 digits[i] = 0
    25                 carry = 1
    26                 if i == 0:
    27                     digits.insert(i, 1)
    28             else:
    29                 digits[i] += carry
    30                 carry = 0
    31         return digits
    32 """
    33 解法二:递归
    34 """
    35 class Solution2:
    36     def plusOne(self, digits):
    37         if len(digits) == 1 and digits[0] == 9:
    38             return [1, 0]
    39         if digits[-1] != 9:
    40             digits[-1] += 1
    41             return digits
    42         else:
    43             digits[-1] = 0
    44             digits[:-1] = self.plusOne(digits[:-1])
    45         return digits
  • 相关阅读:
    (Tree) 101. Symmetric Tree
    (String). Word Pattern
    (Array)121. Best Time to Buy and Sell Stock
    (Array)169. Majority Element
    记录一次工作问题总结——关于游戏物体渲染顺序
    C++——STL(算法)
    观察者设计模式
    二分查找——校招题
    排序算法——归并排序
    排序算法——堆排序
  • 原文地址:https://www.cnblogs.com/yawenw/p/12425680.html
Copyright © 2020-2023  润新知