加一

题解方法

  • 数组

进位检查

  • 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)