美文网首页
PLUS ONE 加一

PLUS ONE 加一

作者: adonisjph | 来源:发表于2016-01-15 15:48 被阅读66次

给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。

该数字按照大小进行排列,最大的数在列表的最前面。

样例
给定 [1,2,3]
表示 123, 返回 [1,2,4]
.
给定 [9,9,9]
表示 999, 返回 [1,0,0,0]

思路:对于数组构成的数进行加1,应当是从数组的末尾也就是数的个位开始加1。所以数组的遍历应当从数组的末位元素进行。
有两点需要注意,一个是进位的处理,还有一个是当数组元素都为9时,应当扩大数组长度以容纳新数组。

代码:
class Solution:
    # @param digits, a list of integer digits
    # @return a list of integer digits
    def plusOne(self, digits):
        for i in range(len(digits)-1, -1, -1):  #从末位开始遍历数组
            digits[i] = (digits[i] + 1) % 10  #求元素+1后的个位数
            if digits[i]:  #如果为0,则说明产生了进位,break后将进位的1加到前一个元素上
                break;
        else:
            digits.insert(0, 1)  #这里用insert方法将元素插入列表中
        return digits

相关文章

  • PLUS ONE 加一

    给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照大小进行排列,最大的数在列表的...

  • plus-one(加一)

    题目描述 Given a number represented as an array of digits, pl...

  • LeetCode每日练习(66、724、189)

    66-加一[https://leetcode-cn.com/problems/plus-one/] 输入:digi...

  • LeetCode:66. 加一

    问题链接 66. 加一[https://leetcode-cn.com/problems/plus-one] 问题...

  • Leetcode-66 加一

    66. 加一[https://leetcode-cn.com/problems/plus-one/] 解题思路 1...

  • 66. 加一

    题目地址(66. 加一) https://leetcode.cn/problems/plus-one/[https...

  • LC链表题目分类详解

    基础知识 链表翻转 实际应用1 LeetCode] Plus One Linked List 链表加一运算 如何在...

  • LeetCode 66. Plus One 加一

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

  • LeetCode 66-70

    66. Plus One[https://leetcode-cn.com/problems/plus-one/] ...

  • 66. Plus One

    66. Plus One 题目:https://leetcode.com/problems/plus-one/ 难...

网友评论

      本文标题:PLUS ONE 加一

      本文链接:https://www.haomeiwen.com/subject/hjyhkttx.html