Leetcode加一 (java、python3)

加一

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

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

你可以假设除了整数 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型

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java爬坑系列

你不可不知的Java引用类型【总结篇】

就如最开始说的,设置四种引用类型,是为了更好的控制对象的生命周期,让代码能够一定程度上干涉GC过程,所以引用类型主要就是跟垃圾回收有关了。

10720
来自专栏Spring Cloud设计原理

《Java虚拟机原理图解》 1.2、class文件中的常量池

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blo...

9930
来自专栏Spring Cloud设计原理

《Java虚拟机原理图解》1.4 class文件中的字段表集合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blo...

13840
来自专栏后端技术

LinkedList

hasNext 可以看出,hasNext返回的是指针的nextIndex是否超过了链表长度。

8620
来自专栏Spring Cloud设计原理

《Java虚拟机原理图解》 1.1、class文件基本组织结构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blo...

12150
来自专栏JackieZheng

Go语言入门——数组、切片和映射

但是对于Go,思来想去,感觉真的从“HelloWorld”说起,压根撑不住一篇的篇幅,因为Go的HelloWorld太简单了。

16430
来自专栏Java爬坑系列

【问题总结】万万没想到,竟然栽在了List手里

使用Guava做缓存,往里面存一个List,为了方便描述,称它为列表A,在另一个地方取出来,再跟列表B中的元素进行差集处理,简单来说,就像是下面这样:

11320
来自专栏Spring Cloud设计原理

Javascript 的逻辑运算符的使用技巧和其内在逻辑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.c...

9330
来自专栏Spring Cloud设计原理

《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.c...

10930
来自专栏后端技术

JAVA JVM JRE JDK

https://stackoverflow.com/questions/11547458/what-is-the-difference-between-jvm-...

10240

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励