加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
一开始思路是将数组转换成int整数,然后加一后再转回数组。但是忽略了int的范围。碰到大的数据直接over。
思路分为两种情况:
- -末位是9的话就需要进位。那如果是9999,加一后数组长度还需要加1且为1。
- 末位不是9,则直接在最后加一
class Solution {
public int[] plus(int[] digits) {
int len = digits.length;
for (int i = len - 1; i >= 0; i--) {
if (digits[i] != 9) {
digits[i]++;
return digits;
} else {
digits[i] = 0;
}
}
int temp[] = new int[len + 1];
temp[0] = 1;
return temp;
}
}