1. 程式人生 > >【LeetCode with Python】 Plus One

【LeetCode with Python】 Plus One

部落格域名:http://www.xnerv.wang
原題頁面:https://oj.leetcode.com/problems/plus-one/
題目型別:模擬數值運算
難度評價:★
本文地址:http://blog.csdn.net/nerv3x3/article/details/37336603

Given a non-negative number represented as an array of digits, plus one to the number.

The digits are stored such that the most significant digit is at the head of the list.

用一個int陣列代表一個數值,最左邊是最高位,現要求加上1,同樣地返回一個int陣列代表計算結果。
非常簡單的模擬加法,注意進位問題,如果是99,999這種,最後加上1後還要在陣列最左邊插入一個元素1。
空間複雜度O(1)。時間複雜度O(N)。

class Solution:
    # @param digits, a list of integer digits
    # @return a list of integer digits
    def plusOne(self, digits):
        len_s = len(digits)
        carry = 1
        for i in range(len_s - 1, -1, -1):
            total = digits[i] + carry
            digit = int(total % 10)
            carry = int(total / 10)
            digits[i] = digit
        if 1 == carry:
            digits.insert(0, 1)
        return digits