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.You may assume the integer does not contain any leading zero, except
the number 0 itself.Example 1: Input: [1,2,3] Output: [1,2,4] Explanation: The array represents the integer 123. Example 2: Input: [4,3,2,1] Output: [4,3,2,2] Explanation: The array represents the integer 4321.
思路
从数组最后一位开始加1, 如果有进位就继续往前+1, 直到没有进位位置。 conner case是数组所有的数字都是9, 这样的话就需要重新new一个数组, 长度是以前数组长度+1, 第一位是1.
复杂度
时间O(n) 空间O(1) 不new新数组 O(n) new 新数组
代码
class Solution {
public int[] plusOne(int[] digits) {
for (int i = digits.length - 1; i >=0; i--) {
if (digits[i] +1 == 10) {
digits[i] = 0;
} else {
digits[i] += 1;
return digits;
}
}
int[] res = new int[digits.length +1];
res[0] = 1;
return res;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。