给定一个非负整数组成的非空数组,给整数加一。
可以假设整数不包含任何前导零,除了数字0本身。
最高位数字存放在列表的首位。
详见:https://leetcode.com/problems/plus-one/description/
Java实现:
方法一:
class Solution {
public int[] plusOne(int[] digits) {
int size=digits.length;
if(size==0||digits==null){
return null;
}
for(int i=size-1;i>=0;--i){
if(digits[i]==9){
digits[i]=0;
}else{
digits[i]=digits[i]+1;
return digits;
}
}
if(digits[0]==0){
int[] res=new int[size+1];
res[0]=1;
for(int i=0;i<size;++i){
res[i+1]=digits[i];
}
return res;
}
return digits;
}
}
方法二:
class Solution {
public int[] plusOne(int[] digits) {
int size=digits.length;
if(size==0||digits==null){
return null;
}
int n=1;
for(int i=size-1;i>=0;--i){
int a=digits[i]+n;
digits[i]=a%10;
n=a/10;
}
if(n==1){
int[] res=new int[size+1];
res[0]=1;
for(int i=0;i<size;++i){
res[i+1]=digits[i];
}
return res;
}
return digits;
}
}
参考:https://www.cnblogs.com/grandyang/p/4079357.html