LeetCode66. Plus One-python(easy)

題目來源:

     https://leetcode.com/problems/plus-one/description/

題目分析:

   本題它字面上的解釋有點沒有看懂,看了別人的解釋才理解。它的意思是給定一個數組,將期最後一個元素加1,然後返回新的數組,如果尾數進位了就需要它前面的一個元素加1表示進位。本題的思路是將這個數組先轉化成整數形式,然後進行相加,最後將結果再返回爲列表的形式。

實現代碼:

class Solution:
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        num=0
        for i in range(len(digits)):
            num=num*10+digits[i]
        num=num+1
        return([int(i) for i in str(num)]) %%要注意它這裏是怎麼將整數轉化爲列表形式的,需要學習

另外,還看到有人是直接將其當做列表在做。從它最後一個元素開始看,超過就該位歸0,向前進位。如果到第0位的時候大於9了,則需要向前進位,多一個1.其具體代碼如下:

class Solution:
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        length = len(digits)
        for i in range(length - 1, -1, -1):
            num = digits[i] + 1
            if num > 9:
                digits[i] = 0
                if i == 0:
                    digits = [1] + digits %%注意這裏這種形式,則原列表的最頂端會多個1
            else:
                digits[i] += 1
                break

        return digits

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章