LeetCode 66. Plus One

简介: 给定表示非负整数的非空数字数组,加上整数的1。存储数字使得最高有效数字位于列表的开头,并且数组中的每个元素包含单个数字。您可以假设整数不包含任何前导零,除了数字0本身。

v2-5b51447d166b4df87468831a187f00d3_1440w.jpg

Description



Given a non-empty array of digits representing a non-negative integer, plus one to the integer.


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.


You may assume the integer does not contain any leading zero, except the number 0 itself.


Example 1:

Input: [1,2,3]

Output: [1,2,4]

Explanation: The array represents the integer 123.


Example 2:

Input: [4,3,2,1]

Output: [4,3,2,2]

Explanation: The array represents the integer 4321.


描述



给定表示非负整数的非空数字数组,加上整数的1。

存储数字使得最高有效数字位于列表的开头,并且数组中的每个元素包含单个数字。

您可以假设整数不包含任何前导零,除了数字0本身。


思路



  • 此题目是给定一个数字,每一位都是数组中的一个元素,要求在末尾加一,然后返回结果.
  • 此题目主要注意进位的问题,是普通的加法运算,思路清晰,比较简单,python3代码如下.


class Solution:
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        # 结果数组
        res = []
        # 数组最后一个元素的索引
        index = len(digits)-1
        # 获取最后一个元素的值
        last = digits[index]
        # 当需要进位的时候才进行循环
        while last+1 == 10:
            # 需要进位,在首位插入0
            res.insert(0, 0)
            # index指向数组的前一个元素
            index -= 1
            # 如果index越界,重新赋值为0,即重新指向首位置
            if index == -1:
                index += 1
                # 在输入数组的首位插入0占位
                digits.insert(0, 0)
            # last继续指向输入数组的末尾位置,此时index已经自减一次
            last = digits[index]
        digits[index] += 1
        # 将res和digits数组中的元素合并
        res = digits[:index+1]+res
        return res


源代码文件在这里.

目录
相关文章
Leetcode 623. Add One Row to Tree
题目很简单,在树的第d层加一层,值为v。递归增加一层就好了。代码如下
46 0
LeetCode Contest 178-1368. 使网格图至少有一条有效路径的最小代价 Minimum Cost to Make at Least One Valid Path in a Grid
LeetCode Contest 178-1368. 使网格图至少有一条有效路径的最小代价 Minimum Cost to Make at Least One Valid Path in a Grid
LeetCode 233. Number of Digit One
给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。
89 0
LeetCode 233. Number of Digit One
|
存储 算法
LeetCode 66. 加一 Plus One
LeetCode 66. 加一 Plus One
|
存储
LeetCode 66 Plus One(加一)(vector)
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50564455 翻译 给定一个以一系列数字表示的非负数,将其加一并转换成数字。
861 0
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
55 6
|
3月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
110 2