导航
导航
文章目录
  1. 题目
  2. 翻译

LeetCode-66.Plus one

题目

Given a non-negative number represented as an array of digits, plus one to the number.

The digits are stored such that the most significant digit is at the head of the list.

翻译

给出表示一个非负数各位数字的数组,给该数字加一。
数组中最高位在前。

唯一需要考虑的是进位问题,从低位到高位,如果遇到9,则该位置0,向左移动一位;如果遇到不是9的数,直接加1,返回数组。特殊情况是全部位均为9,则新建数组,第一位是1,其他位均置0:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Solution {
public int[] plusOne(int[] digits) {
int index = digits.length - 1;
while (index >= 0 && digits[index] == 9)
digits[index--] = 0;
if (index >= 0) {
digits[index] += 1;
return digits;
}
digits = new int[digits.length + 1];
digits[0] = 1;
for (int i = 1; i < digits.length; i++)
digits[i] = 0;
return digits;
}
}