Leetcode刷题笔记

第五天 Plus One

2018-08-25  本文已影响5人  业余马拉松选手

第五天,周末,坚持不易

今天选择了一道不那么难的题目,就当奖励自己吧:

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

最直接想的方法,就是在原来数组上遍历直接操作,但想了一下,涉及到进位的问题,比如[9,9] 需要变成[1,0,0]。

这样处理起来,会比较复杂。那么为了先把事情解决,就优先想到了数组遍历,然后可以得到一个整数【题目特意提到了Integer,所以就没考虑溢出的问题】。然后直接对整数加一即可。【好吧,这里其实也没考虑溢出的问题】。

这时,接着就是把数字变成一个数组,那么就是取余和整除的方法,还是比较成熟的,最后再返回之前,还需要将这个数组逆置一下。

整体代码的逻辑“平铺直叙”

class Solution:
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        ret = 0
        retArray = []
        for index,item in enumerate(reversed(digits)):
            ret += item * (10**index)
        ret += 1
        while ret != 0:
            retArray.append(ret%10)
            ret = ret//10
        return retArray[::-1]

今天又用到了两个Python的tips,一个是逆序遍历列表的时候,可以使用reversed函数,接着就是逆序输出列表可以用[::-1]这种方法

最后就是整除需要注意用//

好,今天又刷了一道水题,周日一起整理下吧

上一篇 下一篇

猜你喜欢

热点阅读