题解方法
进位检查
- carry初始为1
- 逆序遍历
- 加法操作
- 记录每位加法之后的进位情况
- 结果取余
首位进位
- 当首位出现进位情况时,构造一个长度多1的新数组
- 新数组首位置1
核心代码
进位检查
1 2 3 4 5
| for (int i = n - 1; i >= 0; i--) { digits[i] = digits[i] + carry; carry = digits[i] == 10 ? 1 : 0; digits[i] %= 10; }
|
首位检查
1 2 3 4
| if (carry == 1) { digits = new int[n + 1]; digits[0] = 1; }
|
题目来源
66. 加一 - 力扣(LeetCode) (leetcode-cn.com)