给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。java
最高位数字存放在数组的首位, 数组中每一个元素只存储一个数字。python
你能够假设除了整数 0 以外,这个整数不会以零开头。git
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.spa
You may assume the integer does not contain any leading zero, except the number 0 itself.指针
示例 1:code
输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。
示例 2:blog
输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。
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便可。图片
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那种。element
能够把数组digits倒置,reversed(digits)
而后逐项加1,最后若是为0,则直接对数组下一项赋值1(python3数组可动态扩展)。最后返回倒置数组。
再就是如上转换成string方式。先把数组转成一个数字,而后加一,最后转换字符串逐个输出char字符并强制转换int型