题目:给定一个数组表示非负整数,其高位在数组的前面,对这个整数加1。
题解:简单的大数加法,遍历数组的每位,同时处理进位,如果最后还有进位,则在数组最前面在插入1即可。
时间复杂度:O(n)
空间复杂度:O(1)
import java.util.Arrays;
public class Solution {
public static int[] plusOne(int[] digits) {
int len = digits.length;
digits[len - 1]++;
for(int i = len - 1; i > 0; i--){
if(digits[i] > 9){
digits[i] = 0;
digits[i - 1]++;
}
}
if(digits[0] == 10){
int[] newdigits = new int[len + 1];
newdigits[0] = 1;
return newdigits;
}else{
return digits;
}
}
public static void main(String[] args) {
int[] nums = {9,9,9,9};
System.out.println(Arrays.toString(plusOne(nums)));
}
}