如果您已经有思路了,或者是N刷了,可以先自己写一遍。
题目分析
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。
这个问题可以通过从数组的末尾向前遍历来解决,使用数组遍历和数字进位的技术。
解题思路
通过从后向前的遍历,我们可以逐位处理加一和进位的问题,而无需考虑数组中剩余的部分:
- 当遇到不是9的数字时,加一操作不会引起进位,直接返回结果即可;
- 如果当前元素等于9,加一操作将导致当前位变成0,然后继续检查前一位;
- 对于全是9的数组,新的数组长度会增加1,这是由数字的进位规则决定的;
Java解法
下面是使用Java语言的解法:
1 | public class Solution { |