题目描述(简单难度)
数组代表一个数字,[ 1, 2, 3 ] 就代表 123,然后给它加上 1,输出新的数组。数组每个位置只保存 1 位,也就是 0 到 9。
解法一 递归
先用递归,好理解一些。
时间复杂度:O(n)。
解法二 迭代
上边的递归,属于,完全没必要压栈,直接改成迭代的形式吧。
//从最低位遍历
for (int i = digits.length - 1; i >= 0; i--) {
if (digits[i] < 9) {
digits[i] += 1;
}
//否则的话置为 0
digits[i] = 0;
//最高位如果置为 0 了,说明最高位产生了进位
int[] ans = new int[digits.length + 1];
ans[0] = 1;
digits = ans;
}
时间复杂度:O(n)。
空间复杂度:
总
添加好友一起进步~
如果觉得有帮助的话,可以点击 给一个 star 哦 ^^