资讯专栏INFORMATION COLUMN

Leetcode加一 (java、python3)

沈建明 / 418人阅读

摘要:加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。示例输入输出解释输入数组表示数字。思路指针从最后往前移动,若值为逐个加一,并赋值。不等于则退出循环。首位如果为是则证明需要进一。只需首位赋值即可。

加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

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.

示例 1:

输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:

输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
java:
class Solution {
    public int[] plusOne(int[] digits) {
        for( int i=digits.length;i>=0;i--){
            if(digits[i]+1==10){
                digits[i]=0;
            }else {
                digits[i]+=1;
                break;
            }
        }
        if(digits[0]==0){
            int[] digits2=new int[digits.length+1];
            digits2[0]=1;
            return  digits2;
        }else {
            return digits;
        }
    }
}
思路:

​ 指针从最后往前移动,若值为10逐个加一,并赋值0。不等于10则退出循环。首位如果为是0则证明需要进一。这里新建一个长度比原数组大一。只需首位赋值1即可。

python3:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        """

        :type digits:int
        :return: int
        """
        num = 0
        for i in range(len(digits)):
            num = num*10 + digits[i]
        return [int(i) for i in str(num+1)]

python3则可以有很多实现方法,可以像以上java那种。

可以把数组digits倒置,reversed(digits)然后逐项加1,最后如果为0,则直接对数组下一项赋值1(python3数组可动态扩展)。最后返回倒置数组。

再就是如上转换成string方式。先把数组转成一个数字,然后加一,最后转换字符串逐个输出char字符并强制转换int型

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43932.html

相关文章

  • Leetcode加一javapython3

    摘要:加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。示例输入输出解释输入数组表示数字。思路指针从最后往前移动,若值为逐个加一,并赋值。不等于则退出循环。首位如果为是则证明需要进一。只需首位赋值即可。 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个...

    Apollo 评论0 收藏0
  • Leetcode724:寻找数组的中心索引(javapython3

    摘要:寻找数组的中心索引给定一个整数类型的数组,请编写一个能够返回数组中心索引的方法。同时也是第一个符合要求的中心索引。示例输入输出解释数组中不存在满足此条件的中心索引。说明的长度范围为。 寻找数组的中心索引 给定一个整数类型的数组 nums,请编写一个能够返回数组中心索引的方法。 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心...

    Keven 评论0 收藏0
  • Leetcode724:寻找数组的中心索引(javapython3

    摘要:寻找数组的中心索引给定一个整数类型的数组,请编写一个能够返回数组中心索引的方法。同时也是第一个符合要求的中心索引。示例输入输出解释数组中不存在满足此条件的中心索引。说明的长度范围为。 寻找数组的中心索引 给定一个整数类型的数组 nums,请编写一个能够返回数组中心索引的方法。 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心...

    aaron 评论0 收藏0
  • Leetcode 498:对角线遍历Diagonal Traverse(python3java

    摘要:对角线遍历给定一个含有个元素的矩阵行,列,请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。此时且均超出范围,,应当优先判断是否超出范围,执行,避免因为再次切换一次索引改变方式。避免出现同时小于时布尔值转换两次的错误。 对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。Given ...

    olle 评论0 收藏0
  • Leetcode 498:对角线遍历Diagonal Traverse(python3java

    摘要:对角线遍历给定一个含有个元素的矩阵行,列,请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。此时且均超出范围,,应当优先判断是否超出范围,执行,避免因为再次切换一次索引改变方式。避免出现同时小于时布尔值转换两次的错误。 对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。Given ...

    shinezejian 评论0 收藏0

发表评论

0条评论

沈建明

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<