0066. 加一 #
- 标签:数组
- 难度:简单
题目大意 #
描述:给定一个非负整数数组,数组每一位对应整数的一位数字。
要求:计算整数加 1
后的结果。
说明:
- $1 \le digits.length \le 100$。
- $0 \le digits[i] \le 9$。
示例:
|
|
解题思路 #
思路 1:模拟 #
这道题把整个数组看成了一个整数,然后个位数加 1
。问题的实质是利用数组模拟加法运算。
如果个位数不为 9
的话,直接把个位数加 1
就好。如果个位数为 9
的话,还要考虑进位。
具体步骤:
- 数组前补
0
位。 - 将个位数字进行加
1
计算。 - 遍历数组
- 如果该位数字大于等于
10
,则向下一位进1
,继续下一位判断进位。 - 如果该位数字小于
10
,则跳出循环。
- 如果该位数字大于等于
思路 1:代码 #
|
|
思路 1:复杂度分析 #
- 时间复杂度:$O(n)$。一重循环遍历的时间复杂度为 $O(n)$ 。
- 空间复杂度:$O(1)$。