加一
题目描述:
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。提示:1 <= digits.length <= 1000 <= digits[i] <= 9
class Solution {
public int[] plusOne(int[] digits) {
int carry = 0; // 进位
for(int i = digits.length-1 ; i>=0 ; i--){
if(i == digits.length - 1){
int temp = digits[i]+1+carry;
carry = temp/10;
digits[i] = temp%10;
}else{
int temp = digits[i]+carry;
carry = temp/10;
digits[i] = temp%10;
}
}
if(carry == 1){
int[] result = new int[digits.length+1];
result[0] = carry;
System.arraycopy(digits,0,result,1,digits.length);
return result;
}else{
return digits;
}
}
}
按照题意逻辑即可。